Include grpc plugin in agent jar

What does this PR do?

Currently, we don't ship the gRPC plugin, this PR fixes that.
Checklist

[x] My code follows the style guidelines of this project
[x] I have rebased my changes on top of the latest master branch

[x] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes

[x] I have updated CHANGELOG.asciidoc
[x] I have updated supported-technologies.asciidoc
[ ] Added an API method or config option? Document in which version this will be introduced
[ ] Added an instrumentation plugin? How did you make sure that old, non-supported versions are not instrumented by accident?

Author's Checklist

Related issues

Use cases

Screenshots
<!-- _(Optional)_
Add here screenshots about how the project will be changed after the PR is applied. They could be related to web pages, terminal, etc, or any other image you consider important to be shared with the team.

:broken_heart: Build Failed

Expand to view the summary

Build stats

Build Cause: [Pull request #1162 opened]

Start Time: 2020-04-28T11:13:55.843+0000

Duration: 15 min 18 sec (917504)

Commit: 7eae3dafe36a2d0ccec7d6a26dc8c1d82b12d98f

Test stats :test_tube:

Test
Results

Failed
1

Passed
900

Skipped
2

Total
903

Test errors
Expand to view the tests failures

Name: Tests / Unit Tests / testGeneratedConfigurationDocsAreUpToDate – co.elastic.apm.agent.configuration.ConfigurationExporterTest

Status: FAILED
Age: 1
Duration: 2.909
Error Details: The rendered configuration documentation (/docs/configuration.asciidoc) is not up-to-date.
If you see this error on CI, it means you have to execute the tests locally (./mvnw clean test -pl elastic-apm-agent -am -DfailIfNoTests=false -Dtest=ConfigurationExporterTest) which will update the rendered docs.
If you see this error while running the tests locally, there's nothing more to do - the rendered docs have been updated. When you execute this test the next time, it will not fail anymore.

Steps errors
Expand to view the steps failures

Name: Shell Script

Description: #!/bin/bash                set -euxo pipefail                ./mvnw test

Result: FAILURE

Duration: 6 min 39 sec<

Start Time: 2020-04-28T11:22:53.464+0000

Log output
Expand to view the last 100 lines of log output

[2020-04-28T11:28:53.950Z] | Lettuce34StopSpanInstrumentation$OnCompleteExceptionally |      12,938,053 |       1,433,066 |
[2020-04-28T11:28:53.950Z] | Lettuce34StopSpanInstrumentation$OnCancel          |      11,187,448 |         407,254 |
[2020-04-28T11:28:53.950Z] | Lettuce34StartSpanInstrumentation                  |       9,227,341 |         251,410 |
[2020-04-28T11:28:53.950Z] | Lettuce5StopSpanInstrumentation$OnCompleteExceptionally |       6,861,672 |       1,439,260 |
[2020-04-28T11:28:53.950Z] | Lettuce5StopSpanInstrumentation$OnCancel           |       2,683,577 |       2,471,792 |
[2020-04-28T11:28:53.950Z] | Lettuce5StartSpanInstrumentation                   |       1,868,159 |         253,303 |
[2020-04-28T11:28:53.950Z]
[2020-04-28T11:28:53.950Z] [main] WARN co.elastic.apm.agent.impl.ElasticApmTracer - Attempting to resume the agent when it is in a STOPPED state
[2020-04-28T11:28:53.950Z] [main] WARN co.elastic.apm.agent.impl.ElasticApmTracer - Attempting to resume the agent when it is in a STOPPED state
[2020-04-28T11:28:53.950Z] [main] DEBUG co.elastic.apm.agent.bci.ElasticApmAgent - Type match for instrumentation OnComplete: (hasSuperType(erasure(name(equals(io.lettuce.core.protocol.RedisCommand)))) and not(isInterface())) matches class io.lettuce.core.RedisPublisher$SubscriptionCommand
[2020-04-28T11:28:53.950Z] [main] DEBUG co.elastic.apm.agent.bci.ElasticApmAgent - Type match for instrumentation OnComplete: (hasSuperType(erasure(name(equals(io.lettuce.core.protocol.RedisCommand)))) and not(isInterface())) matches class io.lettuce.core.protocol.CommandWrapper
[2020-04-28T11:28:53.950Z] [main] DEBUG co.elastic.apm.agent.bci.ElasticApmAgent - Type match for instrumentation OnComplete: (hasSuperType(erasure(name(equals(io.lettuce.core.protocol.RedisCommand)))) and not(isInterface())) matches class io.lettuce.core.protocol.Command
[2020-04-28T11:28:53.950Z] [main] DEBUG co.elastic.apm.agent.bci.ElasticApmAgent - Type match for instrumentation OnComplete: (hasSuperType(erasure(name(equals(io.lettuce.core.protocol.RedisCommand)))) and not(isInterface())) matches class io.lettuce.core.protocol.AsyncCommand
[2020-04-28T11:28:54.588Z]
[2020-04-28T11:28:54.588Z] Results :
[2020-04-28T11:28:54.588Z]
[2020-04-28T11:28:54.588Z] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0
[2020-04-28T11:28:54.588Z]
[2020-04-28T11:28:54.588Z] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-failsafe-plugin:2.19.1:integration-test (default) on project apm-lettuce-plugin: Execution default of goal org.apache.maven.plugins:maven-failsafe-plugin:2.19.1:integration-test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
[2020-04-28T11:28:54.589Z] [ERROR] Command was /bin/sh -c cd /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1162/src/github.com/elastic/apm-agent-java/apm-agent-plugins/apm-redis-plugin/apm-lettuce-plugin && /var/lib/jenkins/.java/oracle-10+46-linux/bin/java -javaagent:/var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1162/src/github.com/elastic/apm-agent-java/.m2/org/jacoco/org.jacoco.agent/0.8.2/org.jacoco.agent-0.8.2-runtime.jar=destfile=/var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1162/src/github.com/elastic/apm-agent-java/apm-agent-plugins/apm-redis-plugin/apm-lettuce-plugin/target/jacoco.exec -jar /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1162/src/github.com/elastic/apm-agent-java/apm-agent-plugins/apm-redis-plugin/apm-lettuce-plugin/target/surefire/surefirebooter7156115871367595388.jar /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1162/src/github.com/elastic/apm-agent-java/apm-agent-plugins/apm-redis-plugin/apm-lettuce-plugin/target/surefire/surefire8654559944946101028tmp /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1162/src/github.com/elastic/apm-agent-java/apm-agent-plugins/apm-redis-plugin/apm-lettuce-plugin/target/surefire/surefire_17808283512710556276tmp
[2020-04-28T11:28:54.589Z] [ERROR] -> [Help 1]
[2020-04-28T11:28:54.589Z] [ERROR]
[2020-04-28T11:28:54.589Z] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[2020-04-28T11:28:54.589Z] [ERROR] Re-run Maven using the -X switch to enable full debug logging.
[2020-04-28T11:28:54.589Z] [ERROR]
[2020-04-28T11:28:54.589Z] [ERROR] For more information about the errors and possible solutions, please read the following articles:
[2020-04-28T11:28:54.589Z] [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
[2020-04-28T11:28:54.589Z] [ERROR]
[2020-04-28T11:28:54.589Z] [ERROR] After correcting the problems, you can resume the build with the command
[2020-04-28T11:28:54.589Z] [ERROR]   mvn <goals> -rf :apm-lettuce-plugin
[2020-04-28T11:28:54.628Z] script returned exit code 1
[2020-04-28T11:28:58.512Z] Post stage
[2020-04-28T11:28:58.559Z] Recording test results
[2020-04-28T11:28:58.614Z] Post stage
[2020-04-28T11:28:58.659Z] Recording test results
[2020-04-28T11:29:00.812Z] Running in /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1162/src/github.com/elastic/apm-agent-java
[2020-04-28T11:29:00.826Z] Running in /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1162/src/github.com/elastic/apm-agent-java
[2020-04-28T11:29:00.868Z] [INFO] Codecov: Getting branch ref...
[2020-04-28T11:29:00.880Z] [INFO] Codecov: Getting branch ref...
[2020-04-28T11:29:00.936Z] Masking supported pattern matches of $GITHUB_TOKEN
[2020-04-28T11:29:00.992Z] Masking supported pattern matches of $GITHUB_TOKEN
[2020-04-28T11:29:01.697Z] [INFO] Codecov: Sending data...
[2020-04-28T11:29:01.720Z] [INFO] Codecov: Sending data...
[2020-04-28T11:29:02.973Z] + curl -s -o codecov.sh https://codecov.io/bash
[2020-04-28T11:29:02.973Z] + bash codecov.sh
[2020-04-28T11:29:02.973Z]
[2020-04-28T11:29:02.973Z]   _____          _
[2020-04-28T11:29:02.973Z]  / ____|        | |
[2020-04-28T11:29:02.973Z] | |     ___   __| | ___  ___ _____   __
[2020-04-28T11:29:02.973Z] | |    / _ \ / _` |/ _ \/ __/ _ \ \ / /
[2020-04-28T11:29:02.973Z] | |___| (_) | (_| |  __/ (_| (_) \ V /
[2020-04-28T11:29:02.973Z]  \_____\___/ \__,_|\___|\___\___/ \_/
[2020-04-28T11:29:02.973Z]                               Bash-tbd
[2020-04-28T11:29:02.973Z]
[2020-04-28T11:29:02.973Z]
[2020-04-28T11:29:02.973Z] ==> Jenkins CI detected.
[2020-04-28T11:29:02.973Z]     project root: .
[2020-04-28T11:29:02.973Z] --> token set from env
[2020-04-28T11:29:02.973Z]     Yaml not found, that's ok! Learn more at http://docs.codecov.io/docs/codecov-yaml
[2020-04-28T11:29:02.973Z] ==> Running gcov in . (disable via -X gcov)
[2020-04-28T11:29:02.973Z] ==> Python coveragepy not found
[2020-04-28T11:29:02.974Z] ==> Searching for coverage reports in:
[2020-04-28T11:29:02.974Z]     + .
[2020-04-28T11:29:02.974Z] --> No coverage report found.
[2020-04-28T11:29:02.974Z]     Please visit http://docs.codecov.io/docs/supported-languages
[2020-04-28T11:29:03.232Z] + curl -s -o codecov.sh https://codecov.io/bash
[2020-04-28T11:29:03.232Z] + bash codecov.sh
[2020-04-28T11:29:03.232Z]
[2020-04-28T11:29:03.232Z]   _____          _
[2020-04-28T11:29:03.232Z]  / ____|        | |
[2020-04-28T11:29:03.232Z] | |     ___   __| | ___  ___ _____   __
[2020-04-28T11:29:03.232Z] | |    / _ \ / _` |/ _ \/ __/ _ \ \ / /
[2020-04-28T11:29:03.232Z] | |___| (_) | (_| |  __/ (_| (_) \ V /
[2020-04-28T11:29:03.233Z]  \_____\___/ \__,_|\___|\___\___/ \_/
[2020-04-28T11:29:03.233Z]                               Bash-tbd
[2020-04-28T11:29:03.233Z]
[2020-04-28T11:29:03.233Z]
[2020-04-28T11:29:03.233Z] ==> Jenkins CI detected.
[2020-04-28T11:29:03.233Z]     project root: .
[2020-04-28T11:29:03.233Z] --> token set from env
[2020-04-28T11:29:03.233Z]     Yaml not found, that's ok! Learn more at http://docs.codecov.io/docs/codecov-yaml
[2020-04-28T11:29:03.233Z] ==> Running gcov in . (disable via -X gcov)
[2020-04-28T11:29:03.233Z] ==> Python coveragepy not found
[2020-04-28T11:29:03.233Z] ==> Searching for coverage reports in:
[2020-04-28T11:29:03.233Z]     + .
[2020-04-28T11:29:03.233Z] --> No coverage report found.
[2020-04-28T11:29:03.233Z]     Please visit http://docs.codecov.io/docs/supported-languages
[2020-04-28T11:29:05.823Z] Failed in branch Smoke Tests 02
[2020-04-28T11:29:06.038Z] Failed in branch Smoke Tests 01
[2020-04-28T11:29:06.486Z] Stage "Integration Tests" skipped due to earlier failure(s)
[2020-04-28T11:29:06.602Z] Stage "AfterRelease" skipped due to earlier failure(s)
[2020-04-28T11:29:06.650Z] Stage "AfterRelease" skipped due to earlier failure(s)
[2020-04-28T11:29:08.021Z] Stage "AfterRelease" skipped due to earlier failure(s)
[2020-04-28T11:29:09.361Z] Running on Jenkins in /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1162
[2020-04-28T11:29:10.417Z] [INFO] getVaultSecret: Getting secrets
[2020-04-28T11:29:10.595Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2020-04-28T11:29:13.631Z] + chmod 755 generate-build-data.sh
[2020-04-28T11:29:13.631Z] + ./generate-build-data.sh https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1162/ https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1162/runs/1 FAILURE 917504
[2020-04-28T11:29:14.182Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1162/runs/1/steps/?limit=10000 -o steps-info.json
[2020-04-28T11:29:14.433Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1162/runs/1/tests/?status=FAILED -o tests-errors.json

There are more issues with the plugin
Failed to start agent
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at co.elastic.apm.agent.bci.AgentMain.init(AgentMain.java:99)
	at co.elastic.apm.agent.bci.AgentMain.agentmain(AgentMain.java:65)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
	at sun.instrument.InstrumentationImpl.loadClassAndCallAgentmain(InstrumentationImpl.java:411)
Caused by: java.lang.NoClassDefFoundError: io/grpc/MethodDescriptor
	at co.elastic.apm.agent.grpc.ClientCallImplInstrumentation$Constructor.getMethodMatcher(ClientCallImplInstrumentation.java:108)
	at co.elastic.apm.agent.bci.ElasticApmAgent.applyAdvice(ElasticApmAgent.java:250)
	at co.elastic.apm.agent.bci.ElasticApmAgent.initAgentBuilder(ElasticApmAgent.java:212)
	at co.elastic.apm.agent.bci.ElasticApmAgent.initInstrumentation(ElasticApmAgent.java:160)
	at co.elastic.apm.agent.bci.ElasticApmAgent.initialize(ElasticApmAgent.java:121)
	... 12 more

The problem is that grpc specific classes are referenced in the method matcher that are executed in the bootstrap classloader where these types are not available:
https://github.com/elastic/apm-agent-java/blob/b2ac746be4d90fe9a7191c9d46f2fb0c364b3799/apm-agent-plugins/apm-grpc/apm-grpc-plugin/src/main/java/co/elastic/apm/agent/grpc/ClientCallImplInstrumentation.java#L107-L109

Codecov Report

Merging #1162 into master will increase coverage by 3.34%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #1162      +/-   ##
============================================
+ Coverage     60.48%   63.83%   +3.34%
- Complexity       85     2782    +2697
============================================
  Files           330      284      -46
  Lines         16284    13589    -2695
  Branches       2411     1865     -546
============================================
- Hits           9849     8674    -1175
+ Misses         5801     4326    -1475
+ Partials        634      589      -45

Impacted Files
Coverage Δ
Complexity Δ

...pm/agent/profiler/ProfilingActivationListener.java
57.14% <0.00%> (-7.86%)
3.00% <0.00%> (+3.00%)
:arrow_down:

.../agent/plugin/api/AbstractSpanInstrumentation.java
48.31% <0.00%> (-7.40%)
3.00% <0.00%> (+3.00%)
:arrow_down:

...o/elastic/apm/agent/profiler/SamplingProfiler.java
77.93% <0.00%> (-7.16%)
46.00% <0.00%> (+46.00%)
:arrow_down:

...va/co/elastic/apm/agent/impl/transaction/Span.java
78.72% <0.00%> (-6.09%)
33.00% <0.00%> (+33.00%)
:arrow_down:

...va/co/elastic/apm/agent/impl/ElasticApmTracer.java
69.89% <0.00%> (-5.74%)
84.00% <0.00%> (+84.00%)
:arrow_down:

...ic/apm/agent/plugin/api/TracedInstrumentation.java
26.47% <0.00%> (-5.45%)
6.00% <0.00%> (+6.00%)
:arrow_down:

...lastic/apm/agent/objectpool/ObjectPoolFactory.java
87.50% <0.00%> (-5.36%)
9.00% <0.00%> (+9.00%)
:arrow_down:

...bci/methodmatching/TraceMethodInstrumentation.java
57.14% <0.00%> (-4.77%)
9.00% <0.00%> (+9.00%)
:arrow_down:

...astic/apm/agent/impl/transaction/AbstractSpan.java
74.24% <0.00%> (-4.56%)
39.00% <0.00%> (+39.00%)
:arrow_down:

...astic/apm/agent/impl/transaction/TraceContext.java
77.53% <0.00%> (-4.52%)
77.00% <0.00%> (+77.00%)
:arrow_down:

... and 63 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 b45bf3e...7eae3da. Read the comment docs.


chore: add fbdev karg which is needed for some wayland configurations

Resolves secureblue/secureblue#472
Thank you for contributing to the Universal Blue project!
Please read the Contributor's Guide before submitting a pull request.

Resolves secureblue/secureblue#472

I would like to point out, fixing another project, even downstream, isn't the priority if this one.
If there's documentation of a bug which needs to be fixed in ublue itself that's different.
Also, given recent fixes to nvidia driver configs, I am uncertain this ujust recipe is needed, or at the least it probably needs trimming down.
All the options being put on the kargs are now packaged in the system's modprobe.d files for nvidia:
see: /usr/lib/modprob.e/nvid*.conf
and selected bits include:
blacklist nouveau

options nvidia-drm modeset=1 fbdev=1

Yeah, I'm just closing this as we can't accept PRs for the express purpose of solving a downstream (non ublue-os org) project.
I will gladly accept PRs which fix issues with the ujust recipes which don't work properly within bluefin/bazzite/etc.


Creating function and doing amplify push results in cloudformation Parameters: [S3DeploymentBucket, S3DeploymentRootKey] must have values error

Describe the bug
I added a lambda function through amplify cli and did amplify push. Also tried amplify function push. The push failed with:
UPDATE_FAILED <redact>AmplifyCLI                       AWS::CloudFormation::Stack Wed Apr 24 2019 10:21:12 GMT-0600 (Mountain Daylight Time) Parameters: [S3DeploymentBucket, S3DeploymentRootKey] must have values
This error above is with my graphql API stack.
Then what I did is just touch one of my custom nested stacks to force an "Update" on my graphql API. The the push succeeded.
To Reproduce
Steps to reproduce the behavior:

Have a graphql API with some custom stacks pushed
Create a lambda function through amplify console. amplify status will show only the function needs to be created and there is no changes elsewhere.
Do amplify push
You'll get the error and push fails
Force the graphql API to go in "Update" state by touching one of the nested stack json
Do amplify push, it succeeds and the lambda function is created.

Expected behavior
Lambda function creation should succeed without having to update the Appsync/GraphQL API portion of the stack.
Additional context
Running 1.6.4. Also tried reverting to 1.6.3 but got same error.

I have the exact same error when I push code to my repository and trigger an automated build in the console. The issue only occurs if I don't make a change to my Graphql. Steps to reproduce include:

Make a change to my code and schema.graphql file
Commit and push code
Automated deployment succeeds
Go back to code and make a change to application (no changes to graphql)
Commit and push code
Automated build fails
Go back to code, add a new line to my schema.graphql file
Commit and push
Automated build succeeds.

I have this issue too, but cannot figure out how to reliably reproduce it.

Also hitting this issue with no discernible changes that should affect CFN between deploys on my end.

@hisham @et304383 @onedotover @davekiss do you guys have any custom stacks or resolver override? We haven't been able to reproduce this issue

Yes I do have custom stacks in the api/<my-api>/stacks/ dir.

Can you share a bit more details about what your project looks like? I have been unable to reproduce this as well. I have a project with two functions and a GraphQL api with two custom stacks each creating a table and resolver. When you look at your build directory after a push do you see the "S3DeploymentBucket" and "S3DeploymentRootKey" in the parameters.json in the build directory? They shouldn't have changes since the last deployment because nothing changed but you should see them.

Yes, I added to the CustomResources.json file to include Lambda resolvers I'm using.
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description": "An auto-generated nested stack.",
  "Metadata": {},
  "Parameters": {
    "AppSyncApiId": {
      "Type": "String",
      "Description": "The id of the AppSync API associated with this project."
    },
    "AppSyncApiName": {
      "Type": "String",
      "Description": "The name of the AppSync API",
      "Default": "AppSyncSimpleTransform"
    },
    "env": {
      "Type": "String",
      "Description": "The environment name. e.g. Dev, Test, or Production",
      "Default": "NONE"
    },
    "S3DeploymentBucket": {
      "Type": "String",
      "Description": "The S3 bucket containing all deployment assets for the project."
    },
    "S3DeploymentRootKey": {
      "Type": "String",
      "Description": "An S3 key relative to the S3DeploymentBucket that points to the root\nof the deployment directory."
    }
  },
  "Resources": {
    "EmptyResource": {
      "Type": "Custom::EmptyResource",
      "Condition": "AlwaysFalse"
    },
    "AppLambdaDataSource": {
      "Type": "AWS::AppSync::DataSource",
      "Properties": {
        "ApiId": {
          "Ref": "AppSyncApiId"
        },
        "Name": "AppLambdaFunction",
        "Type": "AWS_LAMBDA",
        "ServiceRoleArn": {
          "Fn::GetAtt": [
            "AppLambdaDataSourceRole",
            "Arn"
          ]
        },
        "LambdaConfig": {
          "LambdaFunctionArn": {
            "Fn::Sub": [
              "arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:AppLambdaFunctionName-${env}",
              {
                "env": {
                  "Ref": "env"
                }
              }
            ]
          }
        }
      }
    },
    "AppLambdaDataSourceRole": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "RoleName": "AppLambdaDataSourceRole",
        "AssumeRolePolicyDocument": {
          "Version": "2012-10-17",
          "Statement": [
            {
              "Effect": "Allow",
              "Principal": {
                "Service": "appsync.amazonaws.com"
              },
              "Action": "sts:AssumeRole"
            }
          ]
        },
        "Policies": [
          {
            "PolicyName": "InvokeLambdaFunction",
            "PolicyDocument": {
              "Version": "2012-10-17",
              "Statement": [
                {
                  "Effect": "Allow",
                  "Action": [
                    "lambda:invokeFunction"
                  ],
                  "Resource": [
                    {
                      "Fn::Sub": [
                        "arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:AppLambdaFunctionName-${env}",
                        {
                          "env": {
                            "Ref": "env"
                          }
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          }
        ]
      }
    },
    "RequestAppLambdaResolver": {
      "Type": "AWS::AppSync::Resolver",
      "Properties": {
        "ApiId": {
          "Ref": "AppSyncApiId"
        },
        "DataSourceName": {
          "Fn::GetAtt": [
            "AppLambdaDataSource",
            "Name"
          ]
        },
        "FieldName": "requestApp",
        "TypeName": "Mutation",
        "RequestMappingTemplateS3Location": {
          "Fn::Sub": [
            "s3://${S3DeploymentBucket}/${S3DeploymentRootKey}/resolvers/${ResolverFileName}",
            {
              "S3DeploymentBucket": {
                "Ref": "S3DeploymentBucket"
              },
              "S3DeploymentRootKey": {
                "Ref": "S3DeploymentRootKey"
              },
              "ResolverFileName": {
                "Fn::Join": [
                  ".",
                  [
                    "Mutation",
                    "requestApp",
                    "req",
                    "vtl"
                  ]
                ]
              }
            }
          ]
        },
        "ResponseMappingTemplateS3Location": {
          "Fn::Sub": [
            "s3://${S3DeploymentBucket}/${S3DeploymentRootKey}/resolvers/${ResolverFileName}",
            {
              "S3DeploymentBucket": {
                "Ref": "S3DeploymentBucket"
              },
              "S3DeploymentRootKey": {
                "Ref": "S3DeploymentRootKey"
              },
              "ResolverFileName": {
                "Fn::Join": [
                  ".",
                  [
                    "Mutation",
                    "requestApp",
                    "res",
                    "vtl"
                  ]
                ]
              }
            }
          ]
        }
      }
    }
  },
  "Conditions": {
    "HasEnvironmentParameter": {
      "Fn::Not": [
        {
          "Fn::Equals": [
            {
              "Ref": "env"
            },
            "NONE"
          ]
        }
      ]
    },
    "AlwaysFalse": {
      "Fn::Equals": [
        "true",
        "false"
      ]
    }
  },
  "Outputs": {
    "EmptyOutput": {
      "Description": "An empty output. You may delete this if you have at least one resource above.",
      "Value": ""
    }
  }
}

@onedotover I was able to add that exact stack and update a function without changing the api category and the deployment succeeded. Are you seeing any other issues? Do you see the missing parameters in the build/parameters.json file? Is this happening locally or only in the CI/CD environment?

Yes, I do see these values locally in build/params.json
It only happens for me in the CI/CD flow. Locally if I make a change to a function, save, and run amplify push it works.

See attached PR with the fix.

Thanks!

I had the same issue. I've upgraded to amplify 1.6.7 and now get this when running amplify init in CodeBuild (with configLevel set to general):
- Initializing your environment: test  ✔ Initialized provider successfully.  Could not read cloudformation template at path: /codebuild/output/srcxxxxxxxx/src/amplify/backend/api/xxxxxx/build/cloudformation-template.json  ✖ An error occurred when pushing the resources to the cloud  ✖ There was an error initializing your environment.  init failed  { Error: ENOENT: no such file or directory, open '/codebuild/output/srcxxxxxx/src/amplify/backend/api/xxxxxx/build/parameters.json'      at Object.openSync (fs.js:436:3)      at Object.writeFileSync (fs.js:1187:35)      at writeUpdatedParametersJson (/usr/local/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/lib/upload-appsync-files.js:85:8)      at uploadAppSyncFiles (/usr/local/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/lib/upload-appsync-files.js:126:5)      at process._tickCallback (internal/process/next_tick.js:68:7)    errno: -2,    syscall: 'open',    code: 'ENOENT',    path:     '/codebuild/output/srcxxxxxxxx/src/amplify/backend/api/xxxxxx/build/parameters.json' }

I discovered that the above issue only occurs when using amplify init with the --yes option. When the yes option is provided the init starts the push (which does in itself seem weird to me) and generates the above exception. If you run init without the yes option and then run push afterwards, it works ok. Now I have a new issue, that the amplify publish fails due to an unhandled exception related to the AWS SDK not finding an AWS accessKey, which I need to investigate future. This is very odd as the init was ok and the configLevel is set to general so I would expect it to use the ECS instance metadata.

@mikeparisstuff what if I don't have a parameters.json file in the build directory? There's one in amplify/backend/api/[api name]/parameters.json. No entries for S3DeploymentRootKey or  S3DeploymentBucket.

@chris-merapar We have  PR for that already and is tied to a different issue (opened by you) and tracked spearately. Closing this specific issue as this is fixed.
@aireater We've notified Amplify Console to update their default CLI version in their build images.


Research ways to integrate JS building within the application

Currently, we are doing this in a separate js project. It should be possible to this in Java at runtime, using something like http://wro4j.readthedocs.io/en/stable/AvailableProcessors/

A quick example was created using http://javadox.com/com.yahoo.platform.yui/yuicompressor/2.4.7/com/yahoo/platform/yui/compressor/JavaScriptCompressor.html

Thus, we can break this task into:

Add methods to WebDriverAction for getting the replay injection code and record injection code. Those should be abstracted in classes.
Add a method to JavascriptInjector which appends injection code. This class should keep track of what injection codes have already been added. Then, when getInjectionCode is called, a cached field with the concatenated and minified code is returned.
Do not pass a js file to CLI tools. Instead, the configuration will be read using ConfigurationUtils and then use the WebDriverActionConfiguration


CAD-4648 Document that protocol versions for eras do not have to be successive.

A recent bug in db-analyser was caused by misconfiguring the era transition from Alonzo to Babbage: It was set to be triggered at protocol version 6, while it should be triggered at protocol version 7. This implies that we can skip protocol versions, i.e., protocol version 6. This PR aims to document that:

From the view of consensus, protocol versions do not have to be successive.
The Babbage hard-fork should be triggered at protocol version 7, and not 6.

Checklist

Branch

[x] Commit sequence broadly makes sense
[x] Commits have useful messages
[x] New tests are added if needed and existing tests are updated
[x] If this branch changes Consensus and has any consequences for downstream repositories or end users, said changes must be documented in interface-CHANGELOG.md
[x] If this branch changes Network and has any consequences for downstream repositories or end users, said changes must be documented in interface-CHANGELOG.md
[x] If serialization changes, user-facing consequences (e.g. replay from genesis) are confirmed to be intentional.

Pull Request

[x] Self-reviewed the diff
[x] Useful pull request description at least containing the following information:

What does this PR change?
Why these changes were needed?
How does this affect downstream repositories and/or end-users?
Which ticket does this PR close (if any)? If it does, is it linked?

[x] Reviewer requested

bors r+


high cpu usage on windows (Update nodemon to current version)

when using grunt-nodemon on Win7 64Bit I experience high cpu usage (~100%).
Watch-Option is set and respected, watching 32 files in 4 folders.
Research:
If I see it right, then currently grunt-nodemon uses nodemon in Version 1.2.x.
When I manually manipulate the grunt-nodemon package.json file to use nodemon in version ~1.3.0-5 then the cpu usage is at a minimum as expected
So I guess, it is merely an update to the package.json-file.
Thanks and regards,
Jens

Sorry, further investigation showed that it was full and completely my own fault.
I missed that it is stated in the doc, that the "watch" option is additional to the current directory. I thought it would replace the default.
No bug. Closing issue.


Make buildable with Java 9

A quick experiment revealed that the project does not build under Java 9. Let's wait until things settle down a bit, but eventually we will need/want to support Java 9.

Adding a note to this... the asciidoc java doclet we use for javadoc generation in the project does not work under JDK-9+ and there seems to be no viable path moving forward at this time so the Javadocs would have to be rewritten in standard format.


Docs should detail case insensitive matching for field sanitizing.

The docs here only describe how to make matches case insensitive, which is the default anyway.
They should also describe the case-insensitive match pattern (?-i) and explain that matches are case-insensitive by default. As they read right now I'd assume that my patterns are case sensitive unless I prepend (?i).

The current master version has changed that behavior a bit: case insensitive is the default and by prepending with (?-i), you can make it sensitive. See https://www.elastic.co/guide/en/apm/agent/java/master/config-core.html#config-sanitize-field-names

D'oh. I checked current when I meant to check master. How they are now in master is exactly how I thought they should be.
Mission accomplished ✅


Reintegrating all UAVCAN type logic into header-only implementation

This is done in preparation for automatic code generation to add remaining types.

Codecov Report

Merging #64 (803a159) into master (9f20ea5) will increase coverage by 1.59%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #64      +/-   ##
==========================================
+ Coverage   83.77%   85.37%   +1.59%
==========================================
  Files          18       18
  Lines         524      506      -18
==========================================
- Hits          439      432       -7
+ Misses         85       74      -11

Impacted Files
Coverage Δ

src/types/uavcan/node/ExecuteCommand.1.0.Request.h
100.00% <100.00%> (ø)

...rc/types/uavcan/node/ExecuteCommand.1.0.Response.h
100.00% <100.00%> (ø)

src/types/uavcan/node/Heartbeat.1.0.h
100.00% <100.00%> (ø)

src/types/uavcan/node/ID.1.0.hpp
100.00% <100.00%> (ø)

src/types/uavcan/node/Version.1.0.hpp
100.00% <100.00%> (ø)

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 9f20ea5...803a159. Read the comment docs.

Codecov Report

Merging #64 (803a159) into master (9f20ea5) will increase coverage by 1.59%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #64      +/-   ##
==========================================
+ Coverage   83.77%   85.37%   +1.59%
==========================================
  Files          18       18
  Lines         524      506      -18
==========================================
- Hits          439      432       -7
+ Misses         85       74      -11

Impacted Files
Coverage Δ

src/types/uavcan/node/ExecuteCommand.1.0.Request.h
100.00% <100.00%> (ø)

...rc/types/uavcan/node/ExecuteCommand.1.0.Response.h
100.00% <100.00%> (ø)

src/types/uavcan/node/Heartbeat.1.0.h
100.00% <100.00%> (ø)

src/types/uavcan/node/ID.1.0.hpp
100.00% <100.00%> (ø)

src/types/uavcan/node/Version.1.0.hpp
100.00% <100.00%> (ø)

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 9f20ea5...803a159. Read the comment docs.


Config to allow undefined in typescript server output

Is your feature request related to a problem? Please describe.
Generated types are not-compatible with other libraries typings that use undefined instead of null.  For example, the generated type for a Query response might be:
export interface FeatureResponse {
  feature?: Feature | null;
}

If am using TypeORM (for example) and resolve this using the generated resolver:
const feature: QueryResolvers.FeatureResolver = (_, { id }) => {
    return repository.findOne({ id });
};

Then this will not compile. This is because the entity.findOne function returns Promise<Feature | undefined> whereas the generate resolver requires Feature | null | Promise<Feature | null>.
In order to use the generated types it is necessary to convert undefined values to null in the resolver, which is repetitive and noisy.
Describe the solution you'd like
It would be useful to allow configuration to specify how optional values should be represented. For example, this might look like:
schema: http://localhost:4000/graphql
overwrite: true
generates:
  src/types.ts:
    - typescript-common
    - typescript-server
    - typescript-resolvers
config:
  contextType: ./#Ctx
  optionalType: undefined

Describe alternatives you've considered
The other alternative that springs to mind is a plugin, but this would seem to duplicate the work there, and would require continued effort to maintain a separate plugin that is 99.9% identical to the original.
Many thanks for this excellent project!

@dotansimha #1017 and #1018 should enable that

Available since 0.15.0 :)

That's awesome, thanks for your continued work on this great project!


Hotfix/v1.1.0 upgrade fix

Background
When starting up, paloma is attempting to run upgrades meant for a previous version (v1.0.0).  This code should not be dynamic, as all upgrades are different.  We are now specifying the exact version this code is meant to run for.
Testing completed

[x] This was tested on a local private testnet

Don't merge this yet.  It accidentally has some other PRs from the release that I need to strip out.  I'll re-open a new PR


Front-end - Controller - create dashboardController

This refers to Dashboard.

This should contains:

get clients which pertain to user by invoking function in factory
store clients in scope
ng-click to drill into specific client


Passwords should not be visible in the build log

The password specified in the CurlSettings.Password property is clearly visible in the log when running the build script with the verbosity level set to Diagnostic.
Since passwords are sensitive information, they should be redacted from the build output.

Fixed. As of 8e24a9a the build output is:
Executing: /usr/bin/curl --user "username:[REDACTED]" <url>


looking for informations

Hi, after a few test with rc 2 I'm looking on more infos about a few things:

I have problems to understand is the Tools section of the project.json.
what do they add to the project? commands to the dotnet command?
how can I find informations about them? when I had a new package tool this section is added to the  project.json?
the imports. How can I discover the imports I have to add?
Since now a web application is a console app I found a few problems creating a library with an ef data model. I opened this issue https://github.com/aspnet/EntityFramework/issues/5425 and I solved, but since it's quite unusual with asp.net to have problems moving code and references from an app to a library, I would like to have more infos if this happens with other libraries.
how can I switch an application from .net framework and core back and forth? especially at the beginning, for compatibility reasons with libraries, could happen that I start a project running core and I have to switch to .net framework.
how can i compile a library both for core and .net framework? To solve some compatibility issues I can try to move code che use libraries incompatible with .net core in another .fx web app, but if I cannot add to this project a library with, for example, the ef mode I have a big problem. If I try this now to add a library to a .net fc project I receive the message are not compatible.
what's happened to the update mechanins of the runtime and stable and unstable feed?

@blackdwarf
For (1) .NET Core tools are explained here: http://dotnet.github.io/docs/core-concepts/core-sdk/cli/overview.html. We should probably link to this doc when we talk about the tools we ship with ASP.NET Core.
For (2) we are aware of the library limitation with EF Core and we are working to get it fixed.
For (3 through 5) you should refer to the .NET Core docs. If you don't find the content you need you can file issues on https://github.com/dotnet/core-docs.


Use uuidgen in Ubuntu openstack install instructions

This should finally resolve #478. It's basically a straight port of the fix from #479, adapted for upstart.

@Lukasa turns out Upstart lets you use shell commands in upstart jobs.  This works for me:
description "etcd"
author "etcd maintainers"

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn

setuid etcd

env ETCD_DATA_DIR=/var/lib/etcd
export ETCD_DATA_DIR

exec /usr/bin/etcd --name calicobobcatci01gulfstreamdatconcouk                                                      \
                   --advertise-client-urls http://<IP_ADDRESS>:2379,http://<IP_ADDRESS>:4001      \
                   --listen-client-urls http://<IP_ADDRESS>:2379,http://<IP_ADDRESS>:4001                                          \
                   --listen-peer-urls http://<IP_ADDRESS>:2380                                                                \
                   --initial-advertise-peer-urls http://<IP_ADDRESS>:2380                                \
                   --initial-cluster-token $(uuidgen)                                                      \
                   --initial-cluster calicobobcatci01gulfstreamdatconcouk=http://<IP_ADDRESS>:2380      \
                   --initial-cluster-state new

turns out Upstart lets you use shell commands in upstart jobs

I can see why upstart got retired, then. :wink:
That said, this way is simpler, so let's use it.


[Event Request] Codeunit 427 ICInboxOutboxMgt - procedure CreatePurchDocument - OnCreatePurchDocumentOnBeforeValidatePostingDate

Please add an Event OnCreatePurchDocumentOnBeforeValidatePostingDate in procedure CreatePurchDocument in Codeunit 427 ICInboxOutboxMgt
[Event Request] Codeunit 427 - ICInboxOutboxMgt - procedure CreatePurchDocument
var
    ICInboxPurchLine: Record "IC Inbox Purchase Line";
    PurchHeader: Record "Purchase Header";
    ICDocDim: Record "IC Document Dimension";
    ICDocDim2: Record "IC Document Dimension";
    HandledICInboxPurchHeader: Record "Handled IC Inbox Purch. Header";
    HandledICInboxPurchLine: Record "Handled IC Inbox Purch. Line";
    DimensionSetIDArr: array[10] of Integer;
    IsHandled: Boolean;
begin
    IsHandled := false;
    OnBeforeCreatePurchDocument(ICInboxPurchHeader, ReplacePostingDate, PostingDate, IsHandled, PurchHeader, HandledICInboxPurchHeader);
    if IsHandled then
        exit;

    with ICInboxPurchHeader do begin
        PurchHeader.Init();
        ...
        PurchHeader."Vendor Order No." := "Vendor Order No.";

        IsHandled := false; // <-- ADDED
        OnCreatePurchDocumentOnBeforeValidatePostingDate(PurchHeader, IsHandled); // <-- NEW EVENT
        if not IsHandled then // <-- ADDED

            if ReplacePostingDate then
                PurchHeader.Validate("Posting Date", PostingDate)
            else
                PurchHeader.Validate("Posting Date", "Posting Date");

        GetCurrency("Currency Code");
    ...

[IntegrationEvent(false, false)]
local procedure OnCreatePurchDocumentOnBeforeValidatePostingDate(PurchHeader: Record "Purchase Header"; var IsHandled: Boolean)
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 47021.


BUG

i have this error when I tried execute ps1

@ostes copy the contents from this link into that install file: https://raw.githubusercontent.com/fireeye/commando-vm/master/install.ps1
It looks like you have some HTML code in there.

gracias


Cancel callbacks for progressdialog

Cancelling a file import or export is not too much of a problem, but cancelling a file re-encryption is pretty painful. You break a file that may not be backed up somewhere.
It should be possible to set a cancel callback on a dialog which will prompt for YES/NO.

Just to confirm, this is about a Yes/No dialog on cancel dialogs NOT cancellation handling itself.


Feature Request: Improve printability of OAS Summary

Hi Pete,
Your OAS Summary report is brilliant. It gives a simple overview of progress and allows leaders to quickly focus on Scouts who need to start or progress further. I recently rescaled it, printed and placed it on our process board for the start of the year.
Two things I like to see improved.

I need the extract from Excel with darker fonts and black lines. It is hard to read when printed. See image attached.
Give an option of Excel or PDF. A PDF option is better as it saves time for the leaders. A PDF option will save the leaders in formatting and rescaling the information. I also ask  you add the word Summit to the title as well, ie Scouts | Terrain | Summit

Regards,
Did

I should be able to do those changes fairly easily, I will get these out in the next version.

Let me know how the new print outs work in version 3, I will close this for now but happy to take more feedback.


feat(ticks): Refactor ticks to improve flexibility

Now it uses transform and explicit positioning. The goal is to add an option that would enable a user to precisely position slider ticks.

Current coverage is 100% (diff: 100%)

Merging #426 into master will not change coverage

@@           master   #426   diff @@
====================================
  Files           1      1
  Lines         862    866     +4
  Methods         0      0
  Messages        0      0
  Branches        0      0
====================================
+ Hits          862    866     +4
  Misses          0      0
  Partials        0      0

Powered by Codecov. Last update edf62b0...b338659


Teams app SharePoint list only loads 200 sites.

Preflight Checklist

[x] I agree to follow the Code of Conduct that this project adheres to.
[x] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Describe the bug
We have a teams environment with around 350 teams sites. We are trying to add the Draw.io teams app to all of these sites and the file the app points to on each site lives within that site. This worked well for exactly 200 of our teams. 150 of our teams do not appear in the list when selecting a SharePoint site to grab a file from.
To Reproduce
Steps to reproduce the behavior:

Open a teams environment with more than 200 teams sites.
Add the Draw.io tab to a team
In the app settings select  the sharepoint option next to "Open Diagram"
Ensure that "Sharepoint" is selected in the left hand list
Scroll through/count the teams in the right hand list.

Expected behavior
We expect that ALL of the SharePoint sites (teams) that the user has access to will appear. However only 200 appear in the list.
Screenshots
If applicable, add screenshots to help explain your problem.
draw.io version (In the Help->About menu of the draw.io editor):

draw.io version [e.g. 19.0.0]

Desktop (please complete the following information):

OS: [e.g. iOS] Windows 10 and Windows 11
Browser [e.g. chrome, safari] Edge and within the MS Teams App
Version [e.g. 22]
Teams - <IP_ADDRESS>69 (64-bit).
Edge - Version 102.0.1245.33 (Official build) (64-bit)

Additional context
Things we have tried:

ensure the user adding the tab/performing the search is an owner on all teams
ensure the user adding the tab/performing the search is a sharepoint and teams admin
ensure that the teams that are missing and teams that are not missing have Identical setups (both public, same channels, same tabs etc)
Refresh the list with different users.  (note that when we do this the order of the list changes, but the contents don't)

Thanks for the report. This will be fixed in the next release


We need to manage the updates of records (and Named Graphs?)

Update of records
In the v.1.5 of the Target Model, the history of record (E73 Information Object) in only modeled by the E65 Creation event, and there is no possibility to document the history of the different versions of this record, which is a problem.
With CIDOC CRM
With CIDOC CRM, there is no way to render those updates, as the E11 Modification class refers only to the modification of E24 Physical Man-Made Thing.
With Prov-O
The Prov-o ontology, used to describe the named graph, can also be used to document the update of the entity. with the property prov:wasRevisionOf it creates a link between the creation version and the updated version of the record.

With CIDOC CRM-Dig
With CRM-Dig, if we instantiate the record and named graph into digital object, we could add the event of modification. Nonetheless, that would create 2 entities for the record and named graph, the original one and the modified one. I'm not sure it would be the best way to model it.

Named Graphs
The Named Graphs generation are documented with the prov:Activity->prov:generated->prov:Entity(Graph). But we could also document the creation and modification of the whole graph with a similar pattern that for the record. Do we need to document the updates of the Named Graph though?

Notes on verbal meeting 2020-02-17
It might be sufficient for what we are meaning to track.
Made a distinction between a persistent resource and a volatile dynamic resource (e.g. making a software program with versions) you want to be able to refer to each version (e73 information object but is not ex nihilo) but everything is linked back to the volatile object (the software program). Will we keep copies of chunks of metadata or do we only want to know when was the last update.
When wanting to have all the information about a specific named graph, do you need a link between all the information objects?
The museums will need the older versions of their data at some point for sure. If it has to be in the LOD environment is another question.
The named graph could be online with the modified events and the copies of data are in our repositories. Or all could be documented in the model with the multiple e73 instances. This will multiply triples as well.
Illip. Museums will need to query older versions.
Habennin. will put links to Parthenos. How to manage massive integration long term; can create meta metadata for the data that we are transforming. Would require a separate triplestore with pointers and policies to handle them.

In the Getty vocabs we went for simplicity foremost, because PROV is quite complicated,  e.g see http://vocab.getty.edu/doc/#dct_modified
This is a complex topic, so here are just a few considerations:

I thought from other issues that you intend to have one named graph per museum, but that is too large granularity. Is best to have one named graph per record (or unit of work) I.e. the individual data pieces that typically are moved in an aggregation scenario.

then you can connect the individual entities to the museum dataset using some partOf relation

as for keeping older versions, it's not a simple question because of

rapidly increasing volume
the need to do queries, faceting and some inferences (eg influence, counting) on the latest versions only

regarding dedicated implementations ,

GraphDB has a history plugin,
Wikidata has  https://www.wikidata.org/wiki/Wikidata:History_Query_Service
LDF can easily federated a repo with an older version of the data

Thank you @VladimirAlexiev for your input.
ProvO is indeed a bit complicated and creates a lot of triples, but it's quite similar to CIDOC CRM. Would it be an option to both have ProvO and dct?
For the question of where to have the named graph, I have created the issue #45. I would very much like your input on that important subject.
During our latest discussion (on the 23th of March), we came to the conclusion that it would be best not to publish the older version of the datasets, and to store them in a repository at CHIN (and available if someone asked them for historical purposes).
We need to investigate those implementations, thank you for the information!

Regarding #45, we have decided to go with a Named Graph per dataset. We know need to identify clearly the updating process.

During our Semantic Committee meeting on the 2021-01-07, while we were discussiing Issue #10, the update came up since in some use cases, keeping track of more than two roles (creator and provider) could be necessary in order to offer the possibility of documenting updates done, for instance, by an artist regarding his/her data in the museum's dataset.
This highlights the need for having two "categories" of updates:

A way to do snapshots of the whole dataset to keep track of its evolution. Someone who would be interested in identifying the changes will have to compare these versions.
When a stakeholder documents the reason for a data modification, we should have a pattern to answer this need.

During our Semantic Committee meeting on the 2021-01-07, while we were discussiing Issue #10, the update came up since in some use cases, keeping track of more than two roles (creator and provider) could be necessary in order to offer the possibility of documenting updates done, for instance, by an artist regarding his/her data in the museum's dataset.
This highlights the need for having two "categories" of updates:

A way to do snapshots of the whole dataset to keep track of its evolution. Someone who would be interested in identifying the changes will have to compare these versions.
When a stakeholder documents the reason for a data modification, we should have a pattern to answer this need.


LoadData does not work

Hi, I am new in jquery... I have been struggled to deal with loadData in jsgrid....
I am using Webform instead of MVC...
Here my code on aspx
$("#jsGrid").jsGrid({
        height: "auto",
        width: "100%",
        sorting: true,
        paging: false,
        autoload: true,
        controller: {
            loadData: function (filter) {
                return $.ajax({
                    type: "GET",
                    contentType: "application/json; charset=utf-8",
                    url: "JsGridTesting.aspx/GetDataJSON",
                    dataType: "json"
                });
            }
        },
        fields: [
            { name: "Name", type: "text" },
            { name: "Description", type: "text", width: 150 }
        ]
    });

and here is my code on server side
<System.Web.Services.WebMethod()> _
   <ScriptMethod(ResponseFormat:=ResponseFormat.Json, UseHttpGet:=True)>
    Public Shared Function GetDataJSON() As String

        Dim obj1 As New Student() With {.Name = "Mick Jagger", .Description = "bar"}
        Dim obj2 As New Student() With {.Name = "Johnny Storm", .Description = "bar"}
        Dim obj3 As New Student() With {.Name = "Richard Hatch", .Description = "bar"}
        Dim obj4 As New Student() With {.Name = "Kelly Slater", .Description = "bar"}

        Dim objStudentList As New List(Of Student)() From {obj1, obj2, obj3, obj4}
        Dim objJSSerializer As New System.Web.Script.Serialization.JavaScriptSerializer()
        Dim strJSON = objJSSerializer.Serialize(objStudentList)

        Return strJSON
   End Function

I have checked that my GetDataJSON has return JSON data correctly but the grid cannot bind the data properly...... Please help me....

Hey! I think loadData expects a promise. Something similar to this should work.
$("#jsGrid").jsGrid({
height: "auto",
width: "100%",
sorting: true,
paging: false,
autoload: true,
controller: {
loadData: function (filter) {
var data = $.Deferred();
$.ajax({
  type: "GET",
  contentType: "application/json; charset=utf-8",
  url: "JsGridTesting.aspx/GetDataJSON",
  dataType: "json"
}).done(function(response){
  data.resolve(response);
});
return data.promise();
}
},
fields: [
{ name: "Name", type: "text" },
{ name: "Description", type: "text", width: 150 }
]
});

In fact there should not be difference between returning $.ajax and returning a promise. But for debug purposes I would suggest you using @geloh's example. Put a debugger; in the done of ajax and ensure you get in it. Also ensure that response has valid format. As I remember (not sure though) the response have a field value (or something like that) when you use Page methods. In this case you indeed need to resolve promise with array of items.

Hi Geloh and Tabalinas,
I use your examples, but it's still not work.... I put a debugger too, but nothing happen..
Could you please give more example of getting data from webservice, I want to see the server code returning json data. Please help

Ensure your ajax request works separately:
$.ajax({
       type: "GET",
       contentType: "application/json",
       url: "JsGridTesting.aspx/GetDataJSON"
       }).done(function(response){
         console.log(response);
     });

Be sure that expected result is printed in the console.
Just in case: you need to open Chrome DevTools to see the console.

This is the result...
the "JsGridTesting.aspx/GetDataJSON" returns the correct object, right ?
But, on the grid, there is still no data...

No, as you can see your response is not an array of objects, but an object with a field d where all data is just a string that you should parse. So in this case it should be at least data.resolve(response.d) or even data.resolve(JSON.parse(response.d)).

It works for me too, thanks @tabalinas and @Utach !!

Wow. It's really helpful. thank @tabalinas

@tabalinas -- How should the JSON array be structured?  I have tried everything that has been suggested and still cannot get anything to display when using the loadData controller.
Here is my script:
loadData: function (filter) {
return $.ajax({
method: "GET",
url: "/api/sbom",
contentType: "application/json",
dataType: "json",
data: filter
}).done(function(response){
console.log(response);
});
},
And here is the result as it shows in the Console:

I just wanted to make sure I get the syntax correct, so I hardcoded some data as follows:
  controller: {
     loadData: function(filter) { return [{"name": "abc", "description":"test"}]; },
     insertItem: $.noop,
     updateItem: $.noop,
     deleteItem: $.noop
    },

The above doesn't work for me, although the exact same data when assigned to the data option works fine.
What have I done wrong?

@JTC1701, My guess is the grid loaded just fine, but it collapsed because of height: "100%". Try to set fixed in pixels value to be sure.

hello sir tabalinas iam using jsgrid from last one week.please help about json object fetch into controller.Iam using JAVA so i used jsgrid like.grid.jsp file.Please help me

@Utach  can u send me that  jsgrid code

@tabalinas  and @Utach  hello sir tabalinas iam using jsgrid from last one week.please help about json object fetch into controller.Iam using JAVA so i used jsgrid like.grid.jsp file.Please help me

I encountered this identical problem when using ASP.NET WebForms.  After spending way too much time tinkering around with it, I discovered that if you're using a WebMethod in your ajax call instead of a generic handler, you will need to use type: "post"
Here's my working solution to this:
        controller: {
            loadData: function (filter) {
                var data = $.Deferred();
                $.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: url,
                    dataType: "json"
                }).done(function (response) {
                    data.resolve(JSON.parse(response.d));
                });
                return data.promise();
            }
        },

Hi,
I'm new to JS Grid.  I have ajax response with array of js objects.
I'm able to  make a promise successfully and return data.
But grid data  is not loading.
Please look in to this.
JS
$("#jsGrid").jsGrid({
width: "100%",
height: "auto",
    autoload: true,
    paging: true,
   controller: {
	  loadData: function (filter) {
		 var dfr = $.Deferred();
		var hActionType ="F";
			var hToken		= document.frmCapacityplan.hToken.value ;
			var sUrl = url;

  	    	 $.ajax({
  	    	 type: "GET",
  	         contentType: "application/json",
  	    	 url: sUrl+paramValue
         }).done(function (response) {
  	    		var responseData = {data:response};
  	    		console.log(responseData.data);
  	    		dfr.resolve(responseData.data);
            });
            return dfr.promise();
        }
     },

     fields: [

     	  { name: "ResourceID", width: 30 },
     	  { name: "Year", width: 30 },
     	  { name: "Month",width: 30 },
     	  { name: "ProjectId",width: 50 },
           { name: "Hours", width: 50 },
           { name: "Comments", width: 200 },
           { name: "ActiveFlag",width:20 }
       ]

});

});

@tabalinas  Hi,
I also faced similar issue with @JTC1701 .
In my console, the result array appered. But I couldn't display it. Could you please help me?


Handling Mixed Address UTXOs with Change Addresses

Description
Currently, when changeIndex is not null, the change in satoshis is returned to:

changeAddress, if changeAddress is not null.

This works fine for single addresses but seems a bit odd when dealing with mixed address UTXOs.
Example Scenario
Let's illustrate with a real-world example:

You need to pay 50 units.
You only have 30 units.
You borrow 20 units from me.
I lend you a 50-unit note.
You should return 30 units back to me as change.

Problem
In the context of UTXOs, if the borrowed 50-unit note is from a different address (mixed address UTXO), the system should be able to handle this by correctly returning the change to the lender’s address.
Proposal
To handle this scenario effectively, we suggest discussing whether to remove the restriction on changeAddress. This would allow the system to dynamically allocate the change to the appropriate address based on the UTXOs involved.
This adjustment will ensure that the returned change correctly reflects the source addresses, thereby improving the handling of mixed address UTXOs.

The current logic of the sendRbf() API suggests that when the changeIndex is specified, the change satoshi should always be returned to the original change address from the original transaction, which makes sense because it's how the original transaction was intended. Ref: https://github.com/ckb-cell/rgbpp-sdk/blob/develop/packages/btc/src/api/sendRbf.ts#L82-L88
if (changeAddress && changeAddress !== outputs[changeIndex].address) {
  throw TxBuildError.withComment(
    ErrorCodes.INVALID_CHANGE_OUTPUT,
    `The address of outputs[${changeIndex}] does not match the specified changeAddress, expected: ${changeAddress}, actual: ${outputs[changeIndex].address}`,
  );
}

However, from another perspective, if the RBF transaction is sponsored by another address, it is also reasonable to return the change to the RBF sponsor instead of the original change address, since the RBF sponsor may provide a large UTXO to the RBF transaction. In this situation, by removing the restriction for the changeAddress option when changeIndex !== undefined, users can freely decide which address the change should be returned to.
Worth mentioning, though, the RBF transaction can be fairly complex:

TX_1 = sendBtc(), from=A
TX_2 = sendRbf(TX_1), from=B
TX_3 = sendRbf(TX_2), from=C

However, from another perspective, if the RBF transaction is sponsored by another address, it is also reasonable to return the change to the RBF sponsor instead of the original change address, since the RBF sponsor may provide a large UTXO to the RBF transaction.

Usually, the RBF sponsor and the original change address are managed by the same private_key. I thought they belongs to one user.

Another option is to do nothing about it, because the restriction mentioned above only applies when changeIndex is not undefined. This means if the user leaves the changeIndex option empty, then the changeAddress option is customizable, and the change satoshi of the RBF transaction can be returned to the RBF sponsor.


Query: webcontainers

Currently we're using stackblitz's webcontainers, is there any possibility of going local on that as well? @coleam00

Duplicate
Closing


Rename to rails-template?

We have these other templates for languages and frameworks:

https://github.com/thoughtbot/android-template
https://github.com/thoughtbot/django-template
https://github.com/thoughtbot/ios-template
https://github.com/thoughtbot/react-native-template

Opened https://github.com/thoughtbot/laces/pull/10 to rename Laces to Go template.

Fun fact: this was the original name of this repo back pre-GitHub 2007-ish when it was in a thoughtbot Subversion repo.

Note that a Rails Template is a preexisting concept in Rails: http://guides.rubyonrails.org/rails_application_templates.html

I like the name suspenders! I feel like template makes sense, but I think suspenders is more fun 👖

Our hope (my hope? someone's hope) is to move suspenders away from being a command-line tool and toward being a set of rake tasks. Does the idea of suspenders-as-a-template remain consistent with the suspenders-as-rake-tasks perspective?

From a high-level architecture view, suspenders is a template with defaults. Running them as rake tasks after the defaults have already been setup from rails new is... misleading at best?
I don't think launching it from a rake task makes any more sense. The only advantage I immediately see is being able to know which version of suspenders (defaults) the project started with. But that's best held by a date/time in git -- not an artifact in a codebase -- unless "upgrading" is supportable in suspenders, which is more of a process for an Engine, not a template.

Suspenders has staying power.

@mike-burns not sure if this is the right forum for this -- but one thing we've been discussing is how nice it would be to keep all of our projects up to date with core suspenders changes.
Is there such a thing as a framework-wrapper that could be versioned? Would this just be a CLI gem? Could Rails be extended as another framework?

@toobulkeh for more history here, see #511, #765, #766, #767, and #855.

TL;DR: No - Suspenders is a generator only. OK.

but one thing we've been discussing is how nice it would be to keep all of our projects up to date with core suspenders changes.

We've spoken a bit about this in London, too (and I presume it's come up elsewhere outside of the issues/PRs @mike-burns linked to). I don't know too much about it, but there is an experiment kicking about looking at doing exactly what you'd quoted. As far as I understand it, it's not the easiest thing to figure out but we're looking into it.

There was also the trout era, as can be seen in fbf39d879092b6b389a2fe4ec6c943e632015d3b, 3c11591f0defcb2281bc9519d78964b461596b2b, 1b4514d01be7f62d2fe73030596a65031a28fe48, a92abc81ed032e7e968fecd634555531d86502fd, 7b9bffcb094a2d7248baf4eaa87f9f1c8fae9df7, and removed in 2b2c6ec78dc4a7a85966db3adc9506db6387acdd, 385dd5b80e5fa73cf118f64105df2405a2351e24, 470e642e943f51c18933ce73edb49161f73b34e9.

I knew I wasn't the only one -- thanks for the references, good learnings. @nickcharlton I'd love to see the fruit of those labors -- or help with the laboring if you need a pair.


Expand on Major-Chord Aliases

Nothing should have been removed, only expanded on.
Tests, passed.

Hi @JakeIwen,
I know it's been a long time since this... and got stalled (my fault, sorry 🙏 )
But now I'm revisiting the chord definitions in the new 3.0 release. You can take a look here: https://github.com/danigb/tonal/blob/feat/v3/chord-dictionary/chord-data.js
I'm open to comments and suggestions :-)


[ldd-chan1] initial update needs for M3

Issue Type
ENHANCEMENT
Describe the issue identified (if applicable)
Initial needs for PDS3 to PDS4 migration for M3 (spectral instrument on chan1)
Describe the solution you'd like
I think this is close to the complete list of attributes:
orbit_limb_direction

string,
legal values "ascending", "descending"
cardinality 1

spacecraft_yaw_direction

string,
legal values "forward", "reverse"
cardinality 1

[orientation model 1 -- these could be separate classes but do not necessarily need to be]
spacecraft_orientation

3-tuple of floats (or as regex, something like \d+.\d+,\d+.\d+,\d+.\d+),
roll/pitch/yaw in degrees from 'ideal nadir'
cardinality 0-1 (or 1 if this is a class)

[orientation model 2]
spacecraft_orientation_rates

3-tuple of floats
roll/pitch/yaw in degrees / second since epoch
cardinality 0-1 (or 1 if this is a class)

[orientation model 3]
spacecraft_orientation_axis_vector

3-tuple of floats
x/y/z unit vector wrt J2000 describing rotation direction since epoch
cardinality 0-1 (or 1 if this is a class)

spacecraft_rotation_rate

float
scalar rotation rate in degrees / second since epoch
cardinality 0-1 (or 1 if this is a class)

class: reference_orientation

cardinality 0-1 [or 1 for orientation models 2 and 3 if we're building those as classes]

initial_spacecraft_orientation

3-tuple of floats
roll/pitch/yaw in degrees from 'ideal nadir' at epoch
cardinality 1

orientation_epoch_time

float
time in tdb (as seconds)
cardinality 1

LDD Dictionary Version
For bug fixes, note the LDD dictionary version in question.
PDS4 IM Version
1.F.0.0

in branch v1100 I am confused by the need for spacecraft_rotation_rate as a single value and ALSO the need for Spacecraft_Orientation_Rates Class as a triplet. Perhaps just one is needed?
spacecraft_rotation_rate:
https://github.com/pds-data-dictionaries/ldd-chan1/blob/896bc4a42a049a0b8994613d5b51253e33ef8096/src/PDS4_CHAN1_IngestLDD.xml#L291
Spacecraft_Orientation_Rates:
https://github.com/pds-data-dictionaries/ldd-chan1/blob/896bc4a42a049a0b8994613d5b51253e33ef8096/src/PDS4_CHAN1_IngestLDD.xml#L583

@m-stclair almost ready for a review. I think I need to drum an example using these classes and then we can iterate.

awesome! let me know when you want me to check them out.

on the spacecraft_rotation_rate vs. Spacecraft_Orientation_Rates issue: in one of the three orientation models the clementine data providers used, they recorded rate as a scalar, with the direction given by spacecraft_orientation_axis_vector. in the other, they recorded it as a vector. it's possible that there's some more elegant way to separate (or not separate) these values; the structure I outlined in that email basically distinguishes the conventions of the three pointing models they provided. as no new pointing metadata of this type will ever be produced, strictly enforcing these conventions may not be necessary.

@m-stclair updated branch schema a little to pull attributes out of orientation classes. Also added an example mapping that will be turned into a test. Are we close?
https://github.com/pds-data-dictionaries/ldd-chan1/blob/<IP_ADDRESS>/test/M3G20090813T001943_V01_L1B.xml_partial

@thareUSGS this looks great! even rolls in a few things from the PDS3 CH1 namespace that I had previously (acceptably but awkwardly) translated using msn, img, or proc. In the next day or two, I'll use it to make a couple test products, see if everything seems to be working cleanly, and get back to you. Thanks!

I have a couple of pattern fixes; other than that, everything works great. It seems like you automate LDD builds using a CI system I don't have access to. Do you want to me to just go ahead and submit the changes as a pull request that modifies a couple of the files in a development build, and then you can reference those to modify whatever source files you're using as necessary? Or I can just describe them -- whatever's easier.

The trick to LDD build are to make a branch. If you don't access then you can still do a pull out just describe it. I can get a branch and CI. Either way. Thanks,
Trent
-------- Original Message --------
From: m-stclair<EMAIL_ADDRESS>Date: Sun, November 22, 2020 3:31 AM -0700
To: pds-data-dictionaries/PDS4-LDD-Issue-Repo<EMAIL_ADDRESS>CC: "Hare, Trent M"<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: [EXTERNAL] Re: [pds-data-dictionaries/PDS4-LDD-Issue-Repo] [ldd-chan1] initial update needs for M3 (#133)
This email has been received from outside of DOI - Use caution before clicking on links, opening attachments, or responding.
I have a couple of pattern fixes; other than that, everything works great. It seems like you automate LDD builds using a CI system I don't have access to. Do you want to me to just go ahead and submit the changes as a pull request that modifies a couple of the files in a development build, and then you can reference those to modify whatever source files you're using as necessary? Or I can just describe them -- whatever's easier.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpds-data-dictionaries%2FPDS4-LDD-Issue-Repo%2Fissues%2F133%23issuecomment-731727080&data=04|01|thare%40usgs.gov|7d3527fffe844e242b3c08d88ed1c558|0693b5ba4b184d7b9341f32f400a5494|0|0|637416378897528806|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=pjBS1tHQIDGbmLbgM4TNKJXNNpkAnGYYsoGeIg7TE9c%3D&reserved=0, or unsubscribe<https://gcc02.s
%20afelinks
%20.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAAXTUYWME74VLRPR4WTXTOTSRDR7PANCNFSM4TJC6YOQ&data=04|01|thare%40usgs.gov|228ea677897e417eb66508d88ed1c036|0693b5ba4b184d7b9341f32f400a5494|0|0|637416378808233810|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=3LPMAxQ4nJhAZBP%2BFEnYMvuyjqQ4V9Da4pz7Lom7Ruw%3D&reserved=0>.

Ok, I'll make a branch. I assume the bot looks at https://github.com/pds-data-dictionaries/ldd-chan1/blob/<IP_ADDRESS>/src/PDS4_CHAN1_IngestLDD.xml in order to generate the .xsd. The schematron rules don't seem to be in there, though. What file do I modify to provide it with source for the .sch?
I'll also add a stub test label for each of the three attitude models.

Michael,
For whatever reason the PDS uses an even more abstracted version of the schema, which is what gets built by the PDS's LDDtool. Why - not sure. But when I took over the schemas from folks here,  it took me a little bit to realize it. It was very confusing at first needing to build the schemas instead of just editing them...
http://sbndev.astro.umd.edu/wiki/Creating_the_Ingest_LDD_Dictionary_Input_File
BTW, this is a thing in XML (not just made up by the PDS).
So, yes the only file needing changing (readme aside), is PDS4_CHAN1_IngestLDD.xml
It is fine to offer schema updates, I can back-port them to LDDs.
-Trent

From: m-stclair<EMAIL_ADDRESS>Sent: Sunday, November 22, 2020 12:51 PM
To: pds-data-dictionaries/PDS4-LDD-Issue-Repo<EMAIL_ADDRESS>Cc: Hare, Trent M<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: [EXTERNAL] Re: [pds-data-dictionaries/PDS4-LDD-Issue-Repo] [ldd-chan1] initial update needs for M3 (#133)
This email has been received from outside of DOI - Use caution before clicking on links, opening attachments, or responding.
Ok, I'll make a branch. I assume the bot looks at https://github.com/pds-data-dictionaries/ldd-chan1/blob/<IP_ADDRESS>/src/PDS4_CHAN1_IngestLDD.xmlhttps://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpds-data-dictionaries%2Fldd-chan1%2Fblob%2F<IP_ADDRESS>%2Fsrc%2FPDS4_CHAN1_IngestLDD.xml&data=04|01|thare%40usgs.gov|c763de49a42b40d25fa108d88f201aea|0693b5ba4b184d7b9341f32f400a5494|0|0|637416715348411823|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=O4iDc6WtOFb0ao55fR2YzRDnC8RkP7Ux9c7GVlfQk0U%3D&reserved=0 in order to generate the .xsd. The schematron rules don't seem to be in there, t hough. What file do I modify to provide it with source for the .sch?
I'll also add a stub test label for each of the three attitude models.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpds-data-dictionaries%2FPDS4-LDD-Issue-Repo%2Fissues%2F133%23issuecomment-731835313&data=04|01|thare%40usgs.gov|c763de49a42b40d25fa108d88f201aea|0693b5ba4b184d7b9341f32f400a5494|0|0|637416715348411823|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=aIEEpSDoENN%2BQXRoTLh7gkGBRI6TNVB%2BVNqBuEHZj9E%3D&reserved=0, or unsubscribe<https://gcc02.saf
%20elinks.p
%20rotection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAAXTUYSFDTQBC4MDPPYJ63DSRFTTVANCNFSM4TJC6YOQ&data=04|01|thare%40usgs.gov|b97f99147f234199737908d88f1ffd44|0693b5ba4b184d7b9341f32f400a5494|0|0|637416714850233822|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=GPjG%2BeE9h4J81cpLlzTZq6TbRITlQxi6h2V6m7xIy%2BI%3D&reserved=0>.

XML is complicated!
Ok, now I see the line in PDS4_CHAN1_IngestLDD.xml that generates the
schematron rule of concern. I will go ahead and submit a pull request with
these minor changes later today. Thanks!
On Sun, Nov 22, 2020 at 8:10 PM Trent Hare<EMAIL_ADDRESS>wrote:

Michael,
For whatever reason the PDS uses an even more abstracted version of the
schema, which is what gets built by the PDS's LDDtool. Why - not sure. But
when I took over the schemas from folks here, it took me a little bit to
realize it. It was very confusing at first needing to build the schemas
instead of just editing them...
http://sbndev.astro.umd.edu/wiki/Creating_the_Ingest_LDD_Dictionary_Input_File
BTW, this is a thing in XML (not just made up by the PDS).
So, yes the only file needing changing (readme aside), is
PDS4_CHAN1_IngestLDD.xml
It is fine to offer schema updates, I can back-port them to LDDs.
-Trent

From: m-stclair<EMAIL_ADDRESS>Sent: Sunday, November 22, 2020 12:51 PM
To: pds-data-dictionaries/PDS4-LDD-Issue-Repo <
<EMAIL_ADDRESS>Cc: Hare, Trent M<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: [EXTERNAL] Re: [pds-data-dictionaries/PDS4-LDD-Issue-Repo]
[ldd-chan1] initial update needs for M3 (#133)
This email has been received from outside of DOI - Use caution before
clicking on links, opening attachments, or responding.
Ok, I'll make a branch. I assume the bot looks at
https://github.com/pds-data-dictionaries/ldd-chan1/blob/<IP_ADDRESS>/src/PDS4_CHAN1_IngestLDD.xml
<
https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpds-data-dictionaries%2Fldd-chan1%2Fblob%2F<IP_ADDRESS>%2Fsrc%2FPDS4_CHAN1_IngestLDD.xml&data=04|01|thare%40usgs.gov|c763de49a42b40d25fa108d88f201aea|0693b5ba4b184d7b9341f32f400a5494|0|0|637416715348411823|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=O4iDc6WtOFb0ao55fR2YzRDnC8RkP7Ux9c7GVlfQk0U%3D&reserved=0>
in order to generate the .xsd. The schematron rules don't seem to be in
there, t hough. What file do I modify to provide it with source for the
.sch?
I'll also add a stub test label for each of the three attitude models.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<
https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpds-data-dictionaries%2FPDS4-LDD-Issue-Repo%2Fissues%2F133%23issuecomment-731835313&data=04|01|thare%40usgs.gov|c763de49a42b40d25fa108d88f201aea|0693b5ba4b184d7b9341f32f400a5494|0|0|637416715348411823|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=aIEEpSDoENN%2BQXRoTLh7gkGBRI6TNVB%2BVNqBuEHZj9E%3D&reserved=0>,
or unsubscribe<https://gcc02.saf
%20elinks.p
%
20rotection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAAXTUYSFDTQBC4MDPPYJ63DSRFTTVANCNFSM4TJC6YOQ&data=04|01|thare%40usgs.gov|b97f99147f234199737908d88f1ffd44|0693b5ba4b184d7b9341f32f400a5494|0|0|637416714850233822|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=GPjG%2BeE9h4J81cpLlzTZq6TbRITlQxi6h2V6m7xIy%2BI%3D&reserved=0

.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pds-data-dictionaries/PDS4-LDD-Issue-Repo/issues/133#issuecomment-731839780,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APIXBZJZJPOXJDG366HPNZTSRFV3VANCNFSM4TJC6YOQ
.

and, unfortunately, it looks like I don't have permission to submit pull
requests to this repo. can you add me as a collaborator?
On Sun, Nov 22, 2020 at 8:18 PM Michael St. Clair <
<EMAIL_ADDRESS>wrote:

XML is complicated!
Ok, now I see the line in PDS4_CHAN1_IngestLDD.xml that generates the
schematron rule of concern. I will go ahead and submit a pull request with
these minor changes later today. Thanks!
On Sun, Nov 22, 2020 at 8:10 PM Trent Hare<EMAIL_ADDRESS>wrote:

Michael,
For whatever reason the PDS uses an even more abstracted version of the
schema, which is what gets built by the PDS's LDDtool. Why - not sure. But
when I took over the schemas from folks here, it took me a little bit to
realize it. It was very confusing at first needing to build the schemas
instead of just editing them...
http://sbndev.astro.umd.edu/wiki/Creating_the_Ingest_LDD_Dictionary_Input_File
BTW, this is a thing in XML (not just made up by the PDS).
So, yes the only file needing changing (readme aside), is
PDS4_CHAN1_IngestLDD.xml
It is fine to offer schema updates, I can back-port them to LDDs.
-Trent

From: m-stclair<EMAIL_ADDRESS>Sent: Sunday, November 22, 2020 12:51 PM
To: pds-data-dictionaries/PDS4-LDD-Issue-Repo <
<EMAIL_ADDRESS>Cc: Hare, Trent M<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: [EXTERNAL] Re: [pds-data-dictionaries/PDS4-LDD-Issue-Repo]
[ldd-chan1] initial update needs for M3 (#133)
This email has been received from outside of DOI - Use caution before
clicking on links, opening attachments, or responding.
Ok, I'll make a branch. I assume the bot looks at
https://github.com/pds-data-dictionaries/ldd-chan1/blob/<IP_ADDRESS>/src/PDS4_CHAN1_IngestLDD.xml
<
https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpds-data-dictionaries%2Fldd-chan1%2Fblob%2F<IP_ADDRESS>%2Fsrc%2FPDS4_CHAN1_IngestLDD.xml&data=04|01|thare%40usgs.gov|c763de49a42b40d25fa108d88f201aea|0693b5ba4b184d7b9341f32f400a5494|0|0|637416715348411823|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=O4iDc6WtOFb0ao55fR2YzRDnC8RkP7Ux9c7GVlfQk0U%3D&reserved=0>
in order to generate the .xsd. The schematron rules don't seem to be in
there, t hough. What file do I modify to provide it with source for the
.sch?
I'll also add a stub test label for each of the three attitude models.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<
https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpds-data-dictionaries%2FPDS4-LDD-Issue-Repo%2Fissues%2F133%23issuecomment-731835313&data=04|01|thare%40usgs.gov|c763de49a42b40d25fa108d88f201aea|0693b5ba4b184d7b9341f32f400a5494|0|0|637416715348411823|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=aIEEpSDoENN%2BQXRoTLh7gkGBRI6TNVB%2BVNqBuEHZj9E%3D&reserved=0>,
or unsubscribe<https://gcc02.saf
%20elinks.p
%
20rotection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAAXTUYSFDTQBC4MDPPYJ63DSRFTTVANCNFSM4TJC6YOQ&data=04|01|thare%40usgs.gov|b97f99147f234199737908d88f1ffd44|0693b5ba4b184d7b9341f32f400a5494|0|0|637416714850233822|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=GPjG%2BeE9h4J81cpLlzTZq6TbRITlQxi6h2V6m7xIy%2BI%3D&reserved=0

.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pds-data-dictionaries/PDS4-LDD-Issue-Repo/issues/133#issuecomment-731839780,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APIXBZJZJPOXJDG366HPNZTSRFV3VANCNFSM4TJC6YOQ
.

great, thank you, submitted.
On Sun, Nov 22, 2020 at 9:57 PM Michael St. Clair <
<EMAIL_ADDRESS>wrote:

and, unfortunately, it looks like I don't have permission to submit pull
requests to this repo. can you add me as a collaborator?
On Sun, Nov 22, 2020 at 8:18 PM Michael St. Clair <
<EMAIL_ADDRESS>wrote:

XML is complicated!
Ok, now I see the line in PDS4_CHAN1_IngestLDD.xml that generates the
schematron rule of concern. I will go ahead and submit a pull request with
these minor changes later today. Thanks!
On Sun, Nov 22, 2020 at 8:10 PM Trent Hare<EMAIL_ADDRESS>wrote:

Michael,
For whatever reason the PDS uses an even more abstracted version of the
schema, which is what gets built by the PDS's LDDtool. Why - not sure. But
when I took over the schemas from folks here, it took me a little bit to
realize it. It was very confusing at first needing to build the schemas
instead of just editing them...
http://sbndev.astro.umd.edu/wiki/Creating_the_Ingest_LDD_Dictionary_Input_File
BTW, this is a thing in XML (not just made up by the PDS).
So, yes the only file needing changing (readme aside), is
PDS4_CHAN1_IngestLDD.xml
It is fine to offer schema updates, I can back-port them to LDDs.
-Trent

From: m-stclair<EMAIL_ADDRESS>Sent: Sunday, November 22, 2020 12:51 PM
To: pds-data-dictionaries/PDS4-LDD-Issue-Repo <
<EMAIL_ADDRESS>Cc: Hare, Trent M<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: [EXTERNAL] Re: [pds-data-dictionaries/PDS4-LDD-Issue-Repo]
[ldd-chan1] initial update needs for M3 (#133)
This email has been received from outside of DOI - Use caution before
clicking on links, opening attachments, or responding.
Ok, I'll make a branch. I assume the bot looks at
https://github.com/pds-data-dictionaries/ldd-chan1/blob/<IP_ADDRESS>/src/PDS4_CHAN1_IngestLDD.xml
<
https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpds-data-dictionaries%2Fldd-chan1%2Fblob%2F<IP_ADDRESS>%2Fsrc%2FPDS4_CHAN1_IngestLDD.xml&data=04|01|thare%40usgs.gov|c763de49a42b40d25fa108d88f201aea|0693b5ba4b184d7b9341f32f400a5494|0|0|637416715348411823|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=O4iDc6WtOFb0ao55fR2YzRDnC8RkP7Ux9c7GVlfQk0U%3D&reserved=0>
in order to generate the .xsd. The schematron rules don't seem to be in
there, t hough. What file do I modify to provide it with source for the
.sch?
I'll also add a stub test label for each of the three attitude models.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<
https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpds-data-dictionaries%2FPDS4-LDD-Issue-Repo%2Fissues%2F133%23issuecomment-731835313&data=04|01|thare%40usgs.gov|c763de49a42b40d25fa108d88f201aea|0693b5ba4b184d7b9341f32f400a5494|0|0|637416715348411823|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=aIEEpSDoENN%2BQXRoTLh7gkGBRI6TNVB%2BVNqBuEHZj9E%3D&reserved=0>,
or unsubscribe<https://gcc02.saf
%20elinks.p
%
20rotection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAAXTUYSFDTQBC4MDPPYJ63DSRFTTVANCNFSM4TJC6YOQ&data=04|01|thare%40usgs.gov|b97f99147f234199737908d88f1ffd44|0693b5ba4b184d7b9341f32f400a5494|0|0|637416714850233822|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=GPjG%2BeE9h4J81cpLlzTZq6TbRITlQxi6h2V6m7xIy%2BI%3D&reserved=0

.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pds-data-dictionaries/PDS4-LDD-Issue-Repo/issues/133#issuecomment-731839780,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APIXBZJZJPOXJDG366HPNZTSRFV3VANCNFSM4TJC6YOQ
.

push release to EN node.


pdtm corrupts packages manager on tools removal

Remove removes given tool from the given path

implemented also unit test related to crud operation in crud_test.go


proposal: crypto/ecdh: support for P224

The new added package is missing support for P-224 curves. This gives a 112 bit security and is still good enough comparable to RSA 2048 bit keys used in the field. The P-224 curve plays a role for resource constrained devices like smart cards.

cc @golang/security

I'm still working with the "deprecated" crypto/elliptic and crypto/curve packages because of this. As Karsten mentioned, a lot of embedded devices rely on P-224 curves for security


true server-side Prepared Statements

I noticed that Prepared Statements seem to be emulated client-side by escaping certain characters.
Any plans to fully support service-side Prepared Statements? This can be done via the binary protocol, but there's a slower SQL-based approach available for non-binary clients:
http://dev.mysql.com/doc/refman/5.5/en/sql-syntax-prepared-statements.html

Any update on this?

Holy crap, I'm unsubscribing from this thread.

+1

+1

Any progress on this?
I'm more interested in the speed benefit of using prepared statements with big data and analysis than the alleged security benefits. Preparing an insert query once and executing millions of times will surely benefit more than node-mysql batching 100 non-prepared statements at a time.
Just curious. I'm very happy with node-mysql (I mean this module, called mysql, but that's ambiguous). I understand very much the issues of volunteering free time and getting payed in joy, and was just wondering if any progress was made on this in the past 2 years.
@felixge I feel bad about how some people in the community have difficulty expressing their appreciation for the work you have done. Know that it is appreciated. :+1:

I'm more interested in the speed benefit of using prepared statements with big data and analysis than the alleged security benefits. Preparing an insert query once and executing millions of times will surely benefit more than node-mysql batching 100 non-prepared statements at a time.

this is probably not the case. ( mostly because of serial nature of protocol ) 10000x 100batched non-prepared is going to be way faster than 1m prepared. Even more faster way is to use LOAD INFILE (basically whole 1m in one batch with very little overhead)

@Redsandro thanks for the kind words. I can't comment on progress, I haven't written any node.js stuff in several years now.

@Redsandro unfortunately I didn't kept my promise and not invested my time into porting prepared statements to here (yet). I might have a look again and see how much work left

@sidorares

this is probably not the case. ( mostly because of serial nature of protocol ) 10000x 100batched non-prepared is going to be way faster than 1m prepared.

Really? Hmm, in that case I'm a tad bit disappointed by the speed, but perhaps the server is to blame. I'm talking about "Nested arrays are turned into grouped lists (for bulk inserts)". I assumed the translating would add some overhead.

Even more faster way is to use LOAD INFILE (basically whole 1m in one batch with very little overhead)

Unfortunately in my particular case I can't (or don't want to) do this, because I can only generate a 100-ish records at a time, depending on input data. Right now it's very resilient. It just waits if the table is locked (in case something else does a big query), data is in the table directly and isn't delayed by a day writing an intermediate INFILE first, and it picks up where it left off.
I have experimented with node not waiting for the INSERT to call back, but then the queue can fill up and choke the script.

I might have a look again and see how much work left

I applaud this! :+1:
Although as you pointed out, I might not benefit from this in my particular use case. But I'm looking forward to experimenting with this.

@Turneliusz unfortunately not very much spare time with day job and 6 kids. At the moment the only way to bump priority is to hire me for a few days to work full time on this

I too feel that this is an important, performance and security-related, feature...
How much do you think that would cost?
Not that I think I could afford ya on my own, but... that's what communities are for...

How much do you think that would cost?

@lflfm the crowdit campaign 6 years ago had a goal around $3k if I'm not mistaken. If somebody want to reach me out with similar figure I'm happy to put all my other commercial work on hold and we'll have prepared statements in mysqljs/mysql within a week

I see, sounds like a fair figure; I couldn't get the sponsorship that I was hoping for unfortunately; but I'll try another source further down the road.

Why not use
const mysql    = require('mysql2');

Why not use
const mysql = require('mysql2');

I don't remember why now, but the results of my analysis not too long ago was that this library (mysql) was the better choice, rather than mysql2... I think it was a combination of these factors:

smaller/fewer dependencies
reliability and/or stability (or something...)
I remember there was something with clusters as well...
In any case, dependency analysis is a big issue for me (most people take this for granted, I see any dependency as big risk and potential for technical debt); and I remember that this was one of the main points that pushed me toward mysql instead of mysql2.

@lflfm most critical dependencies in mysql2 are for perf reasons or represent functionality that is missing in mysqljs/mysql - denque ( fast queue used instead of array ) generate-function ( mysql2 generates optimised JS code at runtime ), iconv-lite ( mysqljs/mysql at the moment does not have good support for charsets ), lru-cache for prepared statements and parsers cache. Rest of deps is same

And I guess you would need to add these deps as well if you were to add the prepared statements on mysql. cheers

@sathio not really, nothing specific to prepared statements ( lru-cache maybe if we want same api with implicitly cached statements )

Does mysql support prepared statements at this point or should I move to mysql2? Thanks

mysql2 doesn't support prepared statements either... so...

mysql2 doesn't support prepared statements either... so...

@dnutels In what way?

Using Prepared Statements

With MySQL2 you also get the prepared statements. With prepared statements MySQL doesn't have to prepare plan for same query everytime, this results in better performance.

Just as an fyi to anyone coming across this issue, here's an actual exploit that can be done when this library is used: https://maxwelldulin.com/BlogPost?post=9185867776


Is feature available for Laravel Api Resources on this data table?

Summary of problem or feature request
Is there any future feature / way to implement the default laravel's api resources in this datatable?
https://laravel.com/docs/5.6/eloquent-resources
I can see it uses the league/fractal but it would be great if we could implement the default one from laravel which could decrease a dependency and we could use common way to implement the api output for other api's and the data table api response.
Code snippet of problem
 return DataTables::eloquent(User::query())
            ->setTransformer(new UserResources(User::query()))
            ->toJson();

-->
System details

Operating System Windows | linux
PHP Version 7.0 | 5.6
Laravel Version 5.5 and up
Laravel-Datatables Version 8+

Edit:
I can also see the one issue on #1515 but still that doesn't have a correct work around to use the Api Resources. Is there any way to implement the resources api rather than using collection?
Any help will be appreciated.

Sorry, but haven't got the time to implement a support for it. A bit busy on non open source projects.

You'll need to install laravel-datatables-fractal package if you haven't already.


Reason: ZipException, message: invalid entry size (expected 911696 but got 911758 bytes). (Run with --stacktrace for more details.)

Description
Execution failed for task ':expo-modules-core:generateReleaseRFile'.

Could not resolve all files for configuration ':expo-modules-core:releaseCompileClasspath'.
Failed to transform react-native-0.70.6-release.aar (com.facebook.react:react-native:0.70.6) to match attributes {artifactType=android-symbol-with-package-name, com.android.build.api.attributes.BuildTypeAttr=release, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-api}.
Execution failed for JetifyTransform: /Volumes/DATA/project/meisucrm/node_modules/react-native/android/com/facebook/react/react-native/0.70.6/react-native-0.70.6-release.aar.
Failed to transform '/Volumes/DATA/project/meisucrm/node_modules/react-native/android/com/facebook/react/react-native/0.70.6/react-native-0.70.6-release.aar' using Jetifier. Reason: ZipException, message: invalid entry size (expected 911696 but got 911758 bytes). (Run with --stacktrace for more details.)
Suggestions:
- Check out existing issues at https://issuetracker.google.com/issues?q=componentid:460323&s=modified_time:desc, it's possible that this issue has already been filed there.
- If this issue has not been filed, please report it at https://issuetracker.google.com/issues/new?component=460323 (run with --stacktrace and provide a stack trace if possible).

Version
0.70.6
Output of npx react-native info
System:
OS: macOS 13.1
CPU: (16) x64 Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz
Memory: 19.16 GB / 32.00 GB
Shell: 5.8.1 - /bin/zsh
Binaries:
Node: 16.14.2 - /var/folders/5j/t9hd6v1d3s902h5xb3g1rmv40000gn/T/yarn--1677113236882-0.7892754250112233/node
Yarn: 1.22.18 - /var/folders/5j/t9hd6v1d3s902h5xb3g1rmv40000gn/T/yarn--1677113236882-0.7892754250112233/yarn
npm: 8.5.0 - ~/.nvm/versions/node/v16.14.2/bin/npm
Watchman: Not Found
Managers:
CocoaPods: 1.11.3 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 22.2, iOS 16.2, macOS 13.1, tvOS 16.1, watchOS 9.1
Android SDK: Not Found
IDEs:
Android Studio: 2021.3 AI-213.7172.25.2113.9014738
Xcode: 14.2/14C18 - /usr/bin/xcodebuild
Languages:
Java: 11.0.17 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: ^18.2.0 => 18.2.0
react-native: ^0.70.6 => 0.70.6
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found
Steps to reproduce
Package release
Snack, code example, screenshot, or link to a repository
no

Execution failed for task ':expo-modules-core:generateReleaseRFile'.

Closing as this needs to be reported to Expo here:
https://github.com/expo/expo/issues
I'll be closing this but feel free to reopen if the other repo points back to us as a issue in the core of React Native.


Bump embedded-io

I also already thought about this - especially since I want to support async here (and 0.4 uses AFIT)
However, I was running into problems when using this in esp-wifi because embedded-svc is still on 0.3

Hmm I didn't seem to run into these issues, but I'll be pushing my branch on esp-wifi later today so maybe we can figure out the issues there :D