Triple tap on hamburger menu causes a black screen

If you have a very simple app (45 lines of code) with a main screen and a drawer and you triple tap very fast on the hamburger menu all the app becomes black.
If you want to reproduce this issue I suggest you to run the following code on an android device in release mode (not on an emulator).
I attached a gif that shows this strange behaviour:

Code example
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int currentPage = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      drawer: Drawer(
          child: ListView.builder(
              itemCount: 2,
              itemBuilder: (context, index) => ListTile(
                  title: Text("Tile $index"),
                  onTap: () => setState(() {
                        currentPage = index;
                        Navigator.pop(context);
                      })))),
      appBar: AppBar(),
      body: Center(child: Text("Page $currentPage")),
    );
  }
}

flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 1.20.0, on Microsoft Windows [Versione 10.0.19041.388], locale it-IT)
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
[√] Android Studio (version 4.0)
[√] VS Code (version 1.47.3)
[√] Connected device (1 available)

• No issues found!

Hi @ferraridamiano
You're accidentally calling Navigator.pop(context);.on Scaffold by tapping on list item before drawer is fully open

if you comment out    // Navigator.pop(context);, this won't happen

Code Sample

import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';

void main() {
  // timeDilation = 10;
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int currentPage = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      drawer: Drawer(
          child: ListView.builder(
              itemCount: 2,
              itemBuilder: (context, index) => ListTile(
                  title: Text("Tile $index"),
                  onTap: () => setState(() {
                        currentPage = index;
                        // Navigator.pop(context);
                      })))),
      appBar: AppBar(),
      body: Center(child: Text("Page $currentPage")),
    );
  }
}

Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you


Feature: Make possible to use custom bootstrap files (Don't throw fatal errors in bootstrap.php)

Larastan Version: 0.7.8
--level used: 5

I created this issue to know if this feature is acceptable or not.
Description
For now, if we have a Laravel application that doesn't satisfy
if (file_exists($applicationPath = getcwd().'/bootstrap/app.php'))

in https://github.com/nunomaduro/larastan/blob/master/bootstrap.php#L9
larastan would throw an fatal error
Fatal error: Trait 'Orchestra\Testbench\Concerns\CreatesApplication' not found in /var/source/app/laravel/vendor/nunomaduro/larastan/src/ApplicationResolver.php on line 16

I want to configure bootstrap files by my own, and not installing orchestra\testbench because it's not a package.
Feature
Check if class Orchestra\Testbench\Concerns\CreatesApplication exists and add a notice if larastan is called without bootstrapping.
For example,
elseif (class_exists('Orchestra\Testbench\Concerns\CreatesApplication')){ // Packages
    $app = ApplicationResolver::resolve();
}
else {
    // add a notice here
    return;
}

https://github.com/nunomaduro/larastan/blob/master/bootstrap.php#L11
The notice should be like,
"Install orchestra\testbench for Laravel packages or add bootstrapFiles to phpstan.neon to boot Laravel application"
I thought about making bootstrapFile configurable in larastan, but I think it is too much and this is a simpler and cleaner solution.
Note
I think this feature would help solving issues like
https://github.com/nunomaduro/larastan/issues/831
and the notice would be helpful for people who wants to use larastan on Laravel packages like
https://github.com/nunomaduro/larastan/pull/847

Feel free to make a pull request with your proposal.


Clean up grounding code to make categorical var inference work

The previous implementation conflates categorical vars with inference rule weight parameters. That made the grounding process a lot more complicated than before we introduced ("dynamic" or "dense") "multinomial factors". However, what we really want is not a new factor type, but rather the ability to support categorical variables in inference rules no matter how rule weight is parameterized (e.g., constant, on category values, or on features).
This change blows away much of the special grounding code for "multinomial factors", simplifying a couple heavy joins.
make test passes. The spouse and chunking tests under test/postgresql also work. I went through the run logs to make sure the intermediate grounding steps all make sense.
For now, we only support the case where the head is a conjunction of categorical vars. Later we should try to support other factor functions and mixing categorical vars with boolean vars.

buildkit moreutils_0.58 dependency is blocking travis...

Looks much clearer!  Glad to see another example of less code making things more general.  I forgot what bug is still there?

The biased coin example? The deepdive.conf code stopped working because of the var table change...
Will address the comments soon!

Travis seems to always fail because the chunking example times out (10min):
No output has been received in the last 10 minutes, this potentially indicates a stalled build or something wrong with the build itself.

@netj PTAL. Also, is it possible to increase the travis timeout limit? (Could also try reducing number of docs in chunking test.)

@alldefector Yes I was testing things myself, and it took a while on my new Mac.  I don't think we can increase Travis timeout nor would it be a good thing to have to wait for an hour per test, so let's reduce the data size.

I think we can shrink things to 20% or less (just on Travis or by default) and lower the F score bar for chunking (getting ~0.65-0.7 for that size) since we're mainly interested in whether it works end to end.
export SUBSAMPLE_NUM_WORDS_TRAIN=1000 SUBSAMPLE_NUM_WORDS_TEST=200

I'm also noticing that spouse example now takes significantly longer than before on my Mac.  postgres stuck at materializing the JOIN with dd_variable_* table.

Yeah, those joins from reuse_weight stage of the spouse example never finish on my macOS either... I'm trying reducing the chunking numbers.

In the spouse test, the "postgresql spouse example reuse weights" step, there are only 3688 variables, but the big join in https://github.com/HazyResearch/deepdive/issues/541 could not finish even after 2HR... Maybe we should try to change the key from two columns to one.


New version: AppFlowy.AppFlowy version 0.6.2

Created by 🥟 Dumplings in workflow run #2533.
Logs
Updated: 0.6.1 → 0.6.2
Cannot validate argument on parameter 'ChatID'. The argument is null, empty, or consists of only white-space characters. Provide an argument that contains non white-space characters, and then try the command again.
Submitting WinGet manifests
Cannot validate argument on parameter 'ChatID'. The argument is null, empty, or consists of only white-space characters. Provide an argument that contains non white-space characters, and then try the command again.

Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Installation failed with exit code -1978335215
2024-07-02 10:37:15.328 [CLI ] Package hash verification failed. SHA256 in manifest [9b18851279b8587c46b6ad644b91b78b52e2a4ec9935ad838a355a604528c66a] does not match download [a37a6985cf822c2b6f0c6b3cfcd325dec5c4f824188daf877d82b004d408b515]

Automated error analysis suggests -1978335215 may mean Hash mismatch.
(Automated response - build 886.)

For moderators or/and anyone else

[!Caution]
As a result of several personal problems I've had over the last few months + my final exams coming up very soon, I'm currently unable to look at my GitHub notifications every day and maintain my executions correctly.
If you detect a certain problem on a certain pul request:

Either you can close the pull request directly without mentioning me.
Or you can send me a message on X (Twitter): @Exorcism0666

Thank you for your understanding, and I'm sorry if some pull requests can't be approved due to the situation I'm in.

This account is automated by Github Actions and the source code was created by CoolPlayLin. If you have any questions about any pull request, don't hesitate to ping Exorcism0666.

[!warning]
With the new version of Komac, numerous Pull Requests may contain bugs or unwanted elements. If such issues arise, please tag russellbanks so that these bugs can be addressed in future updates.

[!important]
Please carefully review these Pull Request before merging. If it is a Pull Request for removing incorrect content and the URLs are issue, free upon manual checking, please close this Pull Request directly. (It is best to inform Exorcism0666 of the closure.)

良い一日をお過ごしください！


⚠ Samsung has degraded performance

In 62f5a51, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2593 ms

Resolved: Samsung performance has improved in 9be318b.


Travis fix and build improvements 2

@cbleek merged #548 in a dedicated branch travis-fix.
@kilip There are still some unit tests which generates warnings. Can you take a look?

A new inspection was created.

The inspection completed: 1179 Issues, 928 Patches


changed locale for mac

Coverage remained the same at 52.642% when pulling d6f6bc847b0bb0632d0886f2a9457f68ce6cac1a on yitam:locale into 230b22895bd20b3151831e8aa1312e6ea2cea260 on Microsoft:dev.


SvelteKit: Streaming support

I'm trying to enable streaming support for SvelteKit.
 const app = new sst.aws.SvelteKit('App', {
      transform: {
        server: {
          streaming: true,
          timeout: '60 seconds',
        },
      }
    })

Streaming works out of the box when running sst dev vite dev.
However, when deployed to AWS, the lambda returns JSON instead of the rendered HTML (content-type: text/html):
{"statusCode":200,"headers":{"content-type":"text/html"},"body":"<!doctype html>\n<html lang=\"en\">\n\t<head>...
Example
+page.server.ts
export const load: PageServerLoad = async () => {
  return {
    _test: new Promise((resolve) => {
      setTimeout(() => {
        resolve('Hello from the server!')
      }, 3000)
    }),
  }
}

+page.svelte
<script lang="ts">
  import type { PageData } from './$types'
  export let data: PageData
</script>

{#await data._test}
  Loading ...
{:then test}
  {test}
{/await}

Am I missing something, or is this not yet implemented?

Any news on this?

We are gonna do a pass on all our SSR sites in the next month or so.


Remove extra tabs in qc_report and replace += on list

I noticed in the qc_report there was an extra tab at the end of the sample lines. While I was looking into that I noticed += was used to add strings to a list. The usage of += for adding elements to a list is not recommended for Python (slower, and unexpected behavior due to it being more like extend than append). Since the list was pretty much made already I replaced it with a .join()
Sources for +=
https://stackoverflow.com/questions/2347265/why-does-behave-unexpectedly-on-lists
https://stackoverflow.com/questions/36524836/is-a-python-lists-operator-equivalent-to-append-or-extend
https://stackoverflow.com/questions/2022031/python-append-vs-operator-on-lists-why-do-these-give-different-results

Can you change the PR to merge into dev branch please.


Build error due to -fobjc-weak is not supported on the current deployment target

Not sure if this is related. But I'm developing an app using Ionic which targets iOS. The specific error I got described in the following issue.
https://github.com/phonegap/phonegap-plugin-push/issues/2183#issuecomment-362780912

Hmm, nanopb doesn't specify that build option so I assume it's coming from their build configuration.

I don't know why this error suddenly happened, but fixed by the following links' way.
Let's try to update build target version in nanopb
https://stackoverflow.com/questions/36147625/xcode-7-3-cannot-create-weak-reference-in-file-using-manual-reference-counting

Thanks @hamath , I was able to build the project by setting the deployment target to iOS 9.0.
Looking forward to the official fixes.

Click the Pods Project in Xcode(Usually at the bottom of the navigator) -> Under Targets, Click "nanopb" -> You will see that the Deployment Default is set to "4.3", Change this to the latest (11.3 for me) and it should be fixed :)

I think there is nothing to do here on the nanopb side, so I'm closing this off.

I have found that pod update resets the ios deployment target to 4.3. I added the following script to my podfile to reset the deployment target on each update:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
    end
  end
end

Of course, you may choose a different target than 9.0, by changing the target number in the above script.


Unable to fully provision cluster if node has label sourced from node template

What kind of request is this (question/bug/enhancement/feature request): Bug
Steps to reproduce (least amount of steps as possible):
Install Rancher 2.3.2 in HA mode on 3 nodes
Create 2 node templates, identical except for 1 of them has an additional node label (for example, submariner.io/gateway=true
Create a node-driver 1.14.x cluster, with 3 node pools --

1st node pool with 3 nodes (using non-labeled node template) with role control plane and etcd
2nd node pool with 1 node (using labeled node template) with role worker
3rd node pool with 3 nodes (using non-labeled node template) with role worker
Let cluster create

Result:
Observe that while the 3 controlplane/etcd nodes and labeled worker node are able to join the cluster, the three remaining none-labeled nodes stay in Provisioning with the status message Waiting to register with Kubernetes
When you log into these failed nodes, observe error messages in the agent like:
time="2019-11-15T05:05:38Z" level=warning msg="Error while getting agent config: invalid response 500: Failed to construct node config. Error: failed to find plan for <IP_ADDRESS>"
time="2019-11-15T05:05:43Z" level=warning msg="Error while getting agent config: invalid response 500: Failed to construct node config. Error: failed to find plan for <IP_ADDRESS>"
time="2019-11-15T05:05:48Z" level=warning msg="Error while getting agent config: invalid response 500: Failed to construct node config. Error: failed to find plan for <IP_ADDRESS>"

Other details that may be helpful:
This was reproduced on two completely independent environments.
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): 2.3.2
Installation option (single install/HA): HA

if you delete the nodes in provisioning 1 by 1, you will get a functional cluster. if you delete them all at once and let them come back up, 1 or 2 of them will register. This feels like a race condition to me.


Swift2objc MVP

Tracking bug for swift2objc MVP.

Swift2ObjC will be at MVP when we can generate bindings for a real Apple API. A simple example would be to recreate the pedometer demo, or the AVFAudio demo. These APIs are relatively simple (at least the parts we use)


(download scripts): Add download process bar in scripts

Codecov Report

Merging #422 (bd39405) into release-1.0.0 (90fc81a) will not change coverage.
The diff coverage is n/a.

@@               Coverage Diff                @@
##             release-1.0.0     #422   +/-   ##
================================================
  Coverage            14.98%   14.98%
  Complexity             397      397
================================================
  Files                  180      180
  Lines                 8074     8074
  Branches               664      664
================================================
  Hits                  1210     1210
  Misses                6777     6777
  Partials                87       87


Add permission to codeunit 415 "Release Purchase Document"

While the permissions for the Purchase header are present for the line this is not. Only read is needed:
Now:
Permissions = TableData "Purchase Header" = rm;
Request:
Permissions = TableData "Purchase Header" = rm,
TableData "Purchase Line" = r,

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.


A pack for the Tesla Automobile(s)

Pack Tesla
Status
A pack for your garage of Tesla cars (Tesla not included)

new pack, complete

Description
Includes actions for :

charge_vehicle - Set the charge pattern to standard
charge_vehicle_max_range - Set the charge pattern to max
flash_lights - Flash the lights of the car
get_vehicle - Get the details of a vehicle
honk_horn - Honk the horn
list_vehicles - List vehicles in your garage
lock_vehicle - Lock the car
open_charge_port_door - Open the charge port hatch
set_vehicle_sun_roof - Set the position of the sun roof
set_vehicle_temperature - Set the temperature of the car
start_vehicle_ac - Start the AC
start_vehicle_charge - Start the charging process
stop_vehicle_ac - Stop the AC
stop_vehicle_charge - Stop the charging process
unlock_vehicle - Unlock the car
wake_vehicle - Wake the vehicle up

Checklist (tick everything that applies)

[x] Metadata: pack.yaml, icon, structure (required for new packs)
[x] Version bump (required for changed packs)
[x] Code linting (required, can be done after the PR checks)
[x] Tests (not required but really recommended)

@tonybaloney how does one test such a pack?

@manasdk don't you have a tesla(s)?

@manasdk don't you have a tesla(s)?

I don't even have a 32:1 scale model let alone a real one :(

There's a weird-looking grey border on the icon, and icon size should be different.
You're an interesting man, Anthony.

Since we can't test the pack, you'll need to take a video of you and one of your many Teslas in frame. You giving StackStorm commands and the Tesla responding to them should be clearly visible. Please also include your home address in pack metadata so we could direct an angry mob in case something goes wrong.

also, FWIW, any self-respecting IFTTT/IOT software HAS to have a Tesla integration. I don't know why, it just does. @emedvedev @manasdk

I will investigate having Tesla loan me an automobile for testing purposes. Or ask @lakshmi-kannan

for vehicle in list_vehicles:
    honk_horn(vehicle)

:car: :postal_horn:

Nice, maybe we can expense Tesla rental now to test this :P

I called Elon, he said this pack is ok. Merging.


Compiler design and pickles

Let's use this issue to discuss how to design the Gherkin compiler, which is described at a very high level in the toplevel README. My goal is to decouple Cucumber implementations from Gherkin so Cucumber implementations can consume other formats.
I've been playing around with various designs to implement the compiler - both a visitable AST and a plain old external iteration one. I'm currently leaning towards a non-visitor one because I think a visitable one adds unnecessary complexity.
IMO visitor is only really useful when there is a high degree of polymorphism in the child nodes. In the Gherkin AST it's only Scenario|ScenarioOutline and DataTable|DocString that are polymorphic.
If we stick with visitor we have to decide where to put iteration - in the nodes or in the visitor. For the compiler I think a depth-first traversal is best. For pretty-printing I think a breadth-first traversal is best. In other words, if we implement iteration in the nodes we can't please everyone (unless we introduce a pluggable tree walker).
Furthermore, I'd like all implementations to be as similar as possible.  I love the simplicity of that and I'd be sad to have to complicate it.
My current feeling is to not use visitor at all, and let the compiler traverse the AST entirely on its own, using external iteration. It's not as elegant perhaps, but it's more pragmatic IMO.
The next question is - what does the compiler produce? My idea is that it produces pickles! More specifically a list of PickledCase (compiled scenarios). This is a struct that is completely decoupled from the Gherkin AST - it only has a source array with Location to produce a stack trace.
The pickles would eventually move to a separate repo/library, and Cucumber implementations will only depend on pickles for the runtime. This would enable is to come up with alternative formats for Cucumber, such as Markdown or even Excel. Just write another parser/compiler that produces pickles.
Let me know what you think. /cc @gasparnagy @muhqu @jbpros @tooky @mattwynne @everzet @stof

There's already an OSS project called Pickles in the Cucumber/Specflow space.
Are you happy overloading that name?

On 1 Apr 2015, at 12:14, Aslak Hellesøy<EMAIL_ADDRESS>wrote:
Let's use this issue to discuss how to design the Gherkin compiler, which is described at a very high level in the toplevel README. My goal is to decouple Cucumber implementations from Gherkin so Cucumber implementations can consume other formats.
I've been playing around with various designs to implement the compiler - both a visitable AST and a plain old external iteration one. I'm currently leaning towards a non-visitor one because I think a visitable one adds unnecessary complexity.
IMO visitor is only really useful when there is a high degree of polymorphism in the child nodes. In the Gherkin AST it's only Scenario|ScenarioOutline and DataTable|DocString that are polymorphic.
If we stick with visitor we have to decide where to put iteration - in the nodes or in the visitor. For the compiler I think a depth-first traversal is best. For pretty-printing I think a breadth-first traversal is best. In other words, if we implement iteration in the nodes we can't please everyone (unless we introduce a pluggable tree walker).
Furthermore, I'd like all implementations to be as similar as possible.  I love the simplicity of that and I'd be sad to have to complicate it.
My current feeling is to not use visitor at all, and let the compiler traverse the AST entirely on its own, using external iteration. It's not as elegant perhaps, but it's more pragmatic IMO.
The next question is - what does the compiler produce? My idea is that it produces pickles! More specifically a list of PickledCase (compiled scenarios). This is a struct that is completely decoupled from the Gherkin AST - it only has a source array with Location to produce a stack trace.
The pickles would eventually move to a separate repo/library, and Cucumber implementations will only depend on pickles for the runtime. This would enable is to come up with alternative formats for Cucumber, such as Markdown or even Excel. Just write another parser/compiler that produces pickles.
Let me know what you think. /cc @gasparnagy @muhqu @jbpros @tooky @mattwynne @everzet @stof
—
Reply to this email directly or view it on GitHub.

@sebrose thanks for the heads up about http://www.picklesdoc.com/
We should avoid name overloading. It doesn't matter too much what it's called - it's a lib used by implementors only - it will never be user-visible.
I think testicle would be great, but I'm worried some people might make a fuss about it. People have made a fuss about smaller things. It doesn't matter - gherkle, icicle, whatever.
I know you probably have great ideas for names, but let's not derail this discussion ;-)

On 1 Apr 2015, at 13:44, Aslak Hellesøy<EMAIL_ADDRESS>wrote:
@sebrose thanks for the heads up about http://www.picklesdoc.com/
We should avoid name overloading. It doesn't matter too much what it's called - it's a lib used by implementors only - it will never be user-visible.

Understood.

I think testicle would be great, but I'm worried some people might make a fuss about it. People have made a fuss about smaller things. It doesn't matter - gherkle, icicle, whatever.
I know you probably have great ideas for names, but let's not derail this discussion ;-)

Agreed

—
Reply to this email directly or view it on GitHub.

@aslakhellesoy I'm wondering how the formatting layer would deal with scenario outlines if cucumber only deals with PickledCase objects. Same for formatting feature backgrounds. Would it have to deal with both the gherkin AST and the run output to match them by location ?
And when would the filtering of features/scenarios based on tags would happen to decide whether they should be run ? Tags don't seem to appear at all in your PickledCase

@stof regarding formatting I'm not sure! The funny thing with Background is that they run several times, so printing them once always seemed a little weird to me.
The pickles could have a back-reference to the AST nodes, making it easier to write a formatter that prints the original structure, but that also means we're maintaining the tight coupling to Gherkin I'd like to get away from. Can anyone suggest any smart algorithms/design patterns here?
Regarding tags - they will be compiled into the pickles too - I just haven't bothered with it yet since I'm still trying out different designs.

I think the gherkin lib should only deal with parsing text to some
structured form (e.g. AST). It should not assume on how this structured
form will be used later (e.g. Visitable/runable). Also resolving background
steps (or examples in scenario outlines) is something that should not be
part of the parser. This is only important for runners (cucumber, behat,
...) but not for tools like formatters, suggestors (IDE integration).
For example for XML you have the choice to use a SAX-Parser (emitting
events while parsing) or a DOM-Parser (building up a structured form of the
text being parsed). Usually you implement the DOM-Parser using the
SAX-Parser... Anything related to interpreting the data is not part of the
parser.
I don't think that the 'pickles' belong to 'gherkin'. But maybe I'm missing
something here... ;-)

Mathias

I think the logic, how to interpret the Gherkin language (e.g. background steps are injected before every scenario), scenario outline text placeholders are substituted, tags are "inherited") are belonging the the language semantics. So it is not that bad to keep them together, so that we have a standardized semantics across the tools. The repo is called gharkin3 and not gherkin3 parser, even though we concentrated on the parser so far.
Visitor: My vote is not to use visitors in the AST, but the different usages (compiler, formatting) should traverse the tree as they want.

@gasparnagy the question is whether the compiler and the parser should live in the same package or be fully separate (with the compiler depending on the parser of course)

I agree with @muhqu that the parser shouldn't do anything else than producing an AST. The parser has no dependencies on the compiler. The compiler depends on (consumes) the AST produced by the parser.
The question is whether we put the compiler in the same git repo/library as the parser. I agree with @gasparnagy - I think we should.
It could of course live in a separate git repo, but I think there are several benefits in keeping them in the same repo:

Leverage the same shared test suite we have now
Easier to refactor
Easier to manage releases
Easier to keep things in sync (this is important)

I think the pickles (the output of the compiler) should live in a separate library however. So this is what I have in mind:
                                       ┌─────────┐
                                       │Cucumber │
                                       └─────────┘
┌─────────────────────────┐                 │
│      Gherkin3 lib       │                 │
│                         │                 │
│ ┌─────────┐ ┌─────────┐ │                 ▼                  ┌─────────┐
│ │Gherkin3 │ │Gherkin3 │ │            ┌─────────┐             │  Excel  │
│ │ Parser  │ │Compiler │─┼───────────▶│ Pickles │◀────────────│Compiler │
│ └─────────┘ └─────────┘ │            └─────────┘             └─────────┘
└─────────────────────────┘                 ▲
                                            │
                                            │
                                            │
                                            │
                                            │
                                            │
                                       ┌─────────┐
                                       │Markdown │
                                       │Compiler │
                                       └─────────┘

Makes sense?
(I love Monodraw)

Makes sense to me @aslakhellesoy. I think Cucumber might also need a dependency on the various compilers, but that's a side issue.
On names, I'm comfortable sticking with the name cucumber-ruby-core as the home for Cucumber::Core::Test::Case, Cucumber::Core::Test::Step, Cucumber::Core::Test::Runner and the various Cucumber::Core::Test::Result types. Boring, maybe, but this is Cucumber's core domain, and for us in Ruby at least, that's where the code already lives. I did have a play with ideas for a more vivid / metaphorical name for this library once we hollow out the dependencies on Gherkin, and I didn't come up with anything as nice as Pickles, which I do like. It works for me if everyone else is on board, but I'm ambivalent.

I've given this some more thought, and I think that while we're all working together to figure out what the structure of those pickles should be, the most pragmatic approach is to keep it all in the Gherkin3 repo/library:
                               ┌─────────┐
        ┌─────────────┬────────│Cucumber │──────────────┐
        │             │        └─────────┘              │
        │             │             │                   │
        │             │             │                   │
        │             │             │                   │
        │             │             │                   │
┌───────┼─────────────┼─────────────┼───────┐           │
│       │             │             │       │           │
│       ▼             ▼             ▼       │           ▼
│  ┌─────────┐   ┌─────────┐   ┌─────────┐  │      ┌─────────┐
│  │Gherkin3 │   │Gherkin3 │   │ Pickles │  │      │Markdown │
│  │ Parser  │   │Compiler │──▶│         │◀─┼──────│Parser / │
│  └─────────┘   └─────────┘   └─────────┘  │      │Compiler │
└───────────────────────────────────────────┘      └─────────┘
                Gherkin3 lib

Once it stabilises we can re-evaluate whether it makes sense to move pickles and perhaps the compiler too into separate projects.

Another approach is to refactor from the existing Ruby codebase, which already has a pickles in the form of cucumber-ruby-core. We’d just need to make it work with the new AST.
cheers,
Matt
—
+44 20 8720 6842
Co-founder, Cucumber Limited
<EMAIL_ADDRESS>

I had a look at the current WIP version. I think it is fine. I have two comments:

naming of the pickles - i understand the concept, that the pickle has a single name, so it contains the "Scenario: " prefix too (there is no keyword / name separation in pickle level), but this brings up interesting problems of how to name the SO examples. The current solution (take the first keyword for Scenario) might lead to interesting problems. I don't have a better solution though.

reference the original AST elements - my idea is that the compiler should use a factory to create the pickle elements, and different sources, like Gherkin could implement the factory in a way that it creates subclass instances of the pickle elements (e.g. GherkinScenarioPickle) that can hold strong reference to the source AST node. If a formatter knows about Gherkin (or other potential pickle source) it can downcast the Pickle and use the AST for displaying richer result, otherwise (if the source format is unknown) it should just display what the Pickle directly contains.

On 7 Apr 2015, at 20:17, Gáspár Nagy<EMAIL_ADDRESS>wrote:
I had a look at the current WIP version. I think it is fine. I have two comments:
naming of the pickles - i understand the concept, that the pickle has a single name, so it contains the "Scenario: " prefix too (there is no keyword / name separation in pickle level), but this brings up interesting problems of how to name the SO examples. The current solution (take the first keyword for Scenario) might lead to interesting problems. I don't have a better solution though.

Have you looked at how we’ve named test cases in cucumber-ruby-core?
e.g. https://github.com/cucumber/cucumber-ruby-core/blob/master/spec/cucumber/core/test/case_spec.rb#L100 https://github.com/cucumber/cucumber-ruby-core/blob/master/spec/cucumber/core/test/case_spec.rb#L100

@mattwynne yep, good point. we do something similar in SpecFlow. There we check if the first column has unique values and if yes, we use that instead of #1, #2, etc.
But my question was rather the beginning of the string, so whether it should be prefixed with the keyword ("Scenario: outline name, examples name (#1)" vs "outline name, examples name (#1)").

Or if there should be a keyword/name separation in the pickle level, as for test cases in cucumber-ruby-core.
In Cucumber v2.0 that separation enables that when hooks access the name of the running test case they get the name (outline name, example name (#row) for a test case from a Scenario Outline). But when listing failed test cases at the end of the run both the keyword and the name are used (Scenario Outline: outline name, example name (#row) for a test case from a Scenario Outline).

Keep in mind that we want to generate pickles from other sources than Gherkin. Markdown is high on my list.
If we mandate the use of a keyword in pickles I think we're limiting our freedom to use other sources where a keyword isn't natural.

@aslakhellesoy so Pickles is what the README is referring to as Test cases?
…if so, then why not just write a simple tool that transforms the AST-JSON to some TestCase-JSON?
Sry, if I'm missing the point here. :-/

In code what's on my mind...
some.feature:
Feature: Consuming Cucumbers

  Scenario: eat 5 out of 12
    Given there are 12 cucumbers
     When I eat 5 cucumbers
     Then I should have 7 cucumbers

some.feature-ast.json:
{
  "location": { "line": 1, "column": 1 },
  "type": "Feature",
  "tags": [ ],
  "language": "en",
  "keyword": "Feature",
  "name": "Consuming Cucumbers",
  "scenarioDefinitions": [
    {
      "location": { "line": 3, "column": 3 },
      "type": "Scenario",
      "keyword": "Scenario",
      "name": "eat 5 out of 12",
      "steps": [
        {
          "location": { "line": 4, "column": 5 },
          "type": "Step",
          "keyword": "Given ",
          "text": "there are 12 cucumbers"
        },
        {
          "location": { "line": 5, "column": 6 },
          "type": "Step",
          "keyword": "When ",
          "text": "I eat 5 cucumbers"
        },
        {
          "location": { "line": 6, "column": 6 },
          "type": "Step",
          "keyword": "Then ",
          "text": "I should have 7 cucumbers"
        }
      ],
      "tags": [ ]
    }
  ],
  "comments": [ ]
}

some.testcase.json:
{
 "cases": [
  {
   "name": "Consuming Cucumbers: eat 5 out of 12",
   "sources": [ { "file":"some.feature", "line": 3, "column": 3 } ],
   "steps": [
    {
     "sources": [ { "file":"some.feature", "line": 4, "column": 5 } ],
     "text": "there are 12 cucumbers"
    },
    {
     "sources": [ { "file":"some.feature", "line": 5, "column": 6 } ],
     "text": "I eat 5 cucumbers"
    },
    {
     "sources": [ { "file":"some.feature", "line": 6, "column": 6 } ],
     "text": "I should have 7 cucumbers"
    }
   ]
  }
 ]
}

@muhqu:

so Pickles is what the README is referring to as Test cases?

Yes. I've updated the README.

why not just write a simple tool that transforms the AST-JSON to some TestCase-JSON

That's what Compiler.java does, except that it transforms AST objects to Pickle objects - it doesn't operate on the JSON level. Keep in mind this is work in progress / in flux. We'll have to integrate it into a Cucumber impl to see how well the abstraction works.

Sry, if I'm missing the point here. :-/

Read my updates to the README again and tell me if anything is still unclear.

Yeah I agree that Pickes should not know about Gherkin, very important.
The way our stuff currently works on Ruby core, you could take a Pickles Test::Case and ask it to describe its source to you. You’d get callbacks like step, scenario, background etc that tell you where the thing came from, so you could use those to get the keyword (or the bare name) if you needed it. Seems to me that a Pickle’s name should probably include the keyword, though it might be a bit a bit weird with an example row.

@aslakhellesoy

Read my updates to the README again and tell me if anything is still unclear.

It's fine now. I think I understand now.
So, the Pickles object hierarchy represents a materialized view on the steps per test case (scenario). But each step object in these test cases keeps a reference to the original step node (/object) from the AST. The runner (cucumber) only needs to match its step definitions against the steps from the pickles hierarchy to run the test cases.
But where will the runner report the results to? e.g. which steps passed, failed, where skipped or ignored because there was no matching step def found...
Should the Pickles model (and the Gherkin model) also provide the capability to track the result of a step being run? …If the runner should not need to know about the Pickles source (being it Gherkin, markdown, u-name-it...) and how to render a source specific report, there needs to be some step result propagation between the Pickles model and the source model (Gherkin AST)...
I mean, ideally it should be capable of rendering the raw gherkin feature file with some highlighting which steps passed, failed or where skipped.
Of course this step state propagation is not 1:1. For example the steps from Background and Scenario Outlines will be evaluated more than once and therefor have a 1:N relation to the steps from the Pickles test case.

Currently there are two different approaches how to report results from the execution of feature files, one in Cucumber(-Ruby) and one in Cucumber-JVM. Cucumber(-Ruby) follow the feature file closely (background only reported once, normally reporting the result of test cases from Scenario Outlines on the example table row), whereas Cucumber-JVM follow the executed test cases more closely (background reported every time it is executed, report each step executed for test cases from Scenario Outlines).
When saying "ideally it should be capable of rendering the raw gherkin feature file with some highlighting" you are asking for what Cucumber(-Ruby) currently does @muhqu , but that is not the only approach as shown by the current behavior of Cucumber-JVM.
In case of reports intended for other tools to consume, like currently the json-report produced by the json-formatters (read by masterthoughts cucumber-reporting tools, bamboo-plugins and probably more), it is IMHO essential that there is an explicit result reported for each step executed (for instance one result for each time a background step was executed).

@brasmusson I'm absolutely aware that there are various different report output formats.
What I wanted to highlight is that it should be capable of rendering the raw gherkin feature with highlighting. I was just wondering how that could/would be achieved and to which software component this rendering would belong to. Maybe it's a good idea to keep the parsing and rendering of test cases results (in the test cases native source format) in the same place?

I'd like to change the way reporting is done. I don't like the way it's done in either Cucumber-Ruby or Cucumber-JVM.
I think it was a mistake to include the source (AST) in the JSON report. It makes everything very complicated. The reporting API can be much simpler. All we need to report is the results, and a link to the input source (file, line and column). Something like this:
{
  results: [
    {
      uri: "file:///path/to/the.feature",
      location: {line: 22, column: 4}
      status: "failed",
      error: "some stack trace",
      startTimeMillis:<PHONE_NUMBER>625,
      durationMillis: 12
    }
  ]
}

Generating nice looking reports (HTML) can then be done by reading in the source again (which is easy with the new Gherkin3 API), and merge in the results.
The API could be something like this (Java):
public interface ResultsPlugin {
    void testRunStarted();
    void testStarted(TestCase testCase);
    void testStepStarted(TestStep testStep);
    void testStepFinished(TestStep testStep, TestStepResult result);
    void testFinished(TestCase testCase);
    void testRunFinished();
}

Note that we're not using Pickles here, but TestCases. A TestCase wraps a Pickle, and a TestStep wraps a PickleStep (and a Step Definition). A TestStep can also wrap just a before hook or after hook.
The difficult bit is the pretty formatter. I'm toying with the idea that when the pretty formatter receives a testStepStarted message we simply print everything in the file verbatim up until the line of the TestStep. When the step is finished we can move the cursor up one line (using ansi codes) and print the line again, red, green, amber or blue - depending on the status. For non-ANSI terminals we wouldn't print the step until it's finished.
This approach should work well when scenarios are run sequentially, in a single thread.
We're going to make Cucumber able to run scenarios in random order, possibly multi-threaded. In this case I think we should either disable the pretty formatter, or change its behaviour. It doesn't make sense to pretty-print scenarios (especially the feature headers) in random order.

Generating nice looking reports (HTML) can then be done by reading in the source again (which is easy with the new Gherkin3 API), and merge in the results.

Reading the source again and having to match the results to Scenario's Steps by location (line/column) doesn't feel that natural, but probably would be a feasible solution.

Note that we're not using Pickles here, but TestCases. A TestCase wraps a Pickle, and a TestStep wraps a PickleStep (and a Step Definition).

Ok, but what does the Test(Case|Step) adds to the wrapped Pickle(Case|Step)? …the matched Step Def callback (if any)?

Bear in mind that as of Cucumber 2.0 much of what @aslakhellesoy describes is already live in Cucumber Ruby. For example, the new formatter API, which I admit is currently poorly documented, now works exactly like that.
I think this discussion might be informed by some reading of the cucumber-ruby-core source code, notably the runner. And the compiler which works off the Gherin2 AST at the moment.
@aslakhellesoy and I have some time in the same room next week so hopefully we can start trying to move this code over to work with Gherkin3 and see what problems come out of it.

@muhqu - yes - it adds the stepdef. There is also a flavour for hooks. This is what I have in mind (Java):
interface TestStep {
    TestStepResult run();
}

public class PickleTestStep implements TestStep {
    public PickleTestStep(Pickle p, StepDefinifion sd) {}
}

public class HookTestStep implements TestStep {
    public HookTestStep(HookDefinifion hd) {}
}

@mattwynne I hav to admit that I'm fairly new to 'cucumber' as a processor for gherkin. little bg: I worked like 4 years with behat and just recently switched to cucumber-jvm… with ruby I hav not much to do and like to keep it that way.. I have passion for go and gherkin, that's why I wrote the gherkin-go and go-gherkin parsers ;-)
@aslakhellesoy awesome, I think we're now on the same page… :clap:

I'm glad it's becoming more clear. The various cucumber implementations are quite different on the inside, and I'm hopeful that we can document a high-level architecture that will make it easier for developers to make more consistent implementations!
The discussions we're having here are very useful. I'll do my best to document the important design decisions about Cucumber over at the cukes.info site. I think the new Gherkin architecture is already documented quite well in this project :-)

@muhqu I was wondering, wouldn't it be better to use an RDF vocab with e.g. JSON-LD by the AST format instead of using plain JSON? I wasn't checked the compiler yet, but JSON-LD transformations might come in handy and the AST would have more semantic either.
It could be something like this roughly, but I am not a JSON-LD expert:
gherkin
Feature: Example feature
  As a user of cucumber.js
  I want to have documentation on cucumber
  So that I can concentrate on building awesome applications

  Scenario: Reading documentation
    Given I am on the Cucumber.js GitHub repository
    When I go to the README file
    Then I should see "Usage" as the page title

AST RDF
{
	"@context": {
		"rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
		"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
		"cucumber": "http://cucumber.org/vocab.jsonld#"
	},
	"@id": "http://example.com/features#",
	"features": [
		{
			"@type": "cucumber:Feature",
			"label": "Example feature",
			"description": [
				"As a user of cucumber.js",
				"I want to have documentation on cucumber",
				"So that I can concentrate on building awesome applications"
			],
			"scenarios": [
				{
					"@type": "cucumber:Scenario",
					"label": "Reading documentation",
					"steps": [
						{
							"@type": "cucumber:Given",
							"label": "I am on the Cucumber.js GitHub repository"
						},
						{
							"@type": "cucumber:When",
							"label": "I go to the README file"
						},
						{
							"@type": "cucumber:Then",
							"label": "I should see "Usage" as the page title"
						}
					]
				}
			]
		}
	]
}

Currently, the only reason the AST (and compiled AST) have a JSON representation is for shared tests. The shared tests compare the JSON representation of the AST with an expected JSON document.
The JSON representation isn't currently used for anything else, but I can imagine it could be used for rendering/reporting - you could take a Gherkin AST as JSON and use it to generate a pretty HTML document for example.
@inf3rno can you give us a concrete example of what capabilities JSON-LD would give us that the current format doesn't give us? It appears the change would only require changing type to @type and adding a @context attribute. That doesn't seem too intrusive, but I'm still not clear on the benefits.

@aslakhellesoy
JSON can describe only hierarchical data structures, while JSON-LD can describe graphs. With this structure it does not matter, but by using tags you'll need to use graph, if you add properties to each tag, not just a label.
Another feature that it can annotate the properties with metadata, because it is an RDF format. E.g. the @type means http://www.w3.org/1999/02/22-rdf-syntax-ns#type here, the label means http://www.w3.org/1999/02/22-rdf-syntax-ns#label, the features means http://cucumber.org/vocab.jsonld#features, etc... Each URI identifies a specific term. By dereferencing the URIs, e.g. http://www.w3.org/1999/02/22-rdf-syntax-ns you will get vocabulary descriptions. So for example if you define a gherkin vocab, then you will be able to use it as context, and by parsing and traversing the JSON-LD you will be able to use the labels and descriptions you wrote into this gherkin vocab.
It is hard to tell whether you really need it. I think Markus could tell you more about the advantages and disadvantages of having an RDF vocab, he is an expert in the topic.

For pretty-printing I think a breadth-first traversal is best.

Wouldn’t breadth-first also better suit parallel processing?  It would be nice to plan for that possible future, especially for larger test suites (or frequent builds on CI servers)…

The compiler isnow released (java, ruby, python, js) so I'm closing this


Text changes to overall

Resolve #214

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/264/
Test PASSed.


Consider using Avro for encoding payload

use compressed avro instead of binary formats for a more reliable long term schema system?

Our compression formats are better than can be done with Avro


mapping error: Elasticsearch version?

I have Elasticsearch 6.6 installed on a mac, running fine with several indexes. Trying now to test elastic-wikidata in Python 3.74 with the humans sparql query and a limit of 100.
ew query -p ./humans.rq -i wd -l 100
I get this error: 'Validation Failed: 1: type is missing;2: type is missing; ... etc.
I thought it had to do with the mapping, so I just tried creating an index independently, with python as I normally do,
es.indices.create(index='wd', ignore=400, body=mappings), using the mappings object found in dump_to_es.py:96
I get this error:
{'error': {'root_cause': [{'type': 'mapper_parsing_exception', 'reason': 'Root mapping definition has unsupported parameters:  [aliases : {copy_to=labels_aliases, type=text}] [labels_aliases : {store=true, type=text}] [labels : {copy_to=labels_aliases, type=text}]'}], ...
Wondering if this is a version issue - what ES versions do you support? Tips to get this going? Thanks

Hi Karl. Can you tell me more about the Validation Failed error - does the error message say where it comes from?
I'm guessing you're right and it's to do with the mapping creation in an older Elasticsearch version. I'm running Elasticsearch 7.8.0 and haven't tested it with any older versions - you try to run a newer ES version inside Docker or on a remote machine?

Hi Karl. Can you tell me more about the Validation Failed error - does the error message say where it comes from?
I'm guessing you're right and it's to do with the mapping creation in an older Elasticsearch version. I'm running Elasticsearch 7.8.0 and haven't tested it with any older versions - you try to run a newer ES version inside Docker or on a remote machine?

The full error reads:
elasticsearch.exceptions.RequestError: RequestError(400, 'action_request_validation_exception', 'Validation Failed: 1: type is missing; 2: type is missing; ... 100: type is missing; ("type is missing" repeats 100 times).
But it is preceded by several deprecation warnings:
ElasticsearchDeprecationWarning: field [representative_point] referenced in context [location] is not defined in the mapping
ElasticsearchDeprecationWarning: Setting index.mapper.dynamic is deprecated since indices may not have more than one type anymore.
ElasticsearchDeprecationWarning: field [location.coordinates] referenced in context [location] is not defined in the mapping
I don't understand why there's reference to location and representative point, or what context [location] refers to. In any case, I thought deprecation warnings are not breaking. Not an ES expert at all; several indexes in 6.6 are working well, but I fear version must be ruled out, as you say. I want to ultimate cron generating a fresh index monthly, so I will revisit this when I've updated ES.
In the meantime, I have used wikibase-dump-filter to get 8m or so simplified JSON records, which I will try to index through 'normal' means in python.
thanks, Karl

The full error reads:
elasticsearch.exceptions.RequestError: RequestError(400, 'action_request_validation_exception', 'Validation Failed: 1: type is missing; 2: type is missing; ... 100: type is missing; ("type is missing" repeats 100 times).
But it is preceded by several deprecation warnings:
ElasticsearchDeprecationWarning: field [representative_point] referenced in context [location] is not defined in the mapping
ElasticsearchDeprecationWarning: Setting index.mapper.dynamic is deprecated since indices may not have more than one type anymore.
ElasticsearchDeprecationWarning: field [location.coordinates] referenced in context [location] is not defined in the mapping
I don't understand why there's reference to location and representative point, or what context [location] refers to. In any case, I thought deprecation warnings are not breaking. Not an ES expert at all; several indexes in 6.6 are working well, but I fear version must be ruled out, as you say. I want to ultimate cron generating a fresh index monthly, so I will revisit this when I've updated ES.
In the meantime, I have used wikibase-dump-filter to get 8m or so simplified JSON records, which I will try to index through 'normal' means in python.
thanks, Karl

sounds wise!

sounds wise!


Lower max force to stop crashes

This should be enough impulse to reverse the direction of a max mass max velocity object. Right now, the current max force can cause crashes.

100,000 is 2*50,000 where 50,000 is the max mass

I thought we determined that the cause of the crash was it being larger than a float? What changed? Also shouldn't the explanatory comment above this line be updated as well

Someone showed me an e2 which oscillates the chip entity back and force at max force and it crashes the server.

If you're going to lower the force cutoff to a calculated value, you need to change the logic everywhere WireLib.checkForce is used to clamp the value instead of just ignoring it, as you didn't provide an E2 function to retrieve this magic value we need to abide by if we want any force to be applied.
Also might want to check if the "Improved crazy physics detection to avoid more crashes" on the Garry's Mod Prerelease resolves your oscillating E2 crash anyway.

 Also this isn't a magic value, it's 2maxmassmaxvelocity which is maximpulse.

In the context of an E2, which doesn't have access to physenv.GetPerformanceSettings().MaxVelocity, it's pretty magic

It does, number = speedLimit() (source)

Aha, that lets me adjust my clamps for my applyTorque code aaaand find a new problem.
2*maxmass*maxvelocity may indeed be plenty of impulse for movement, but when a modestly sized parent prop has moment of inertia to the tune of 48790, 223154, 226791, which is already double the 2*maxmass portion of the force limit in two directions, that force limit starts looking quite insufficient for applying any sort of rotational force. And then when you look at a much larger prop and see values like 11687648, 165014848, 165282112...
This leaves a huge disconnect between the angular acceleration attainable with functions based on ApplyForceOffset versus AddAngleVelocity. I don't think this gap should be any larger than is required to keep numbers within the range of a float.

Yea, the limit I imposed is max linear impulse. I suppose a max angular impulse would need to be done which would be 2*maxinertia*maxangularvel


Update verbosity and output method

Just use -v instead of -v T and similar for output. Just added action="store_true", default=False

Also, please update in README.md file

Looks Fine @shriyanss , Merging


Handle resources that have a simplified way to be created

Was trying to manage a custom stack for TCPGOSSIP using wildfly::util::resource, but  /subsystem=jgroups/stack=gossip:add() and /subsystem=jgroups/stack=gossip:read-resource() are two different beasts. The input of the first operation is different from the output of the second and wildfly_resource was built on top of this assumption.
xa-datasource is a similar scenario, but not as complex as this one. I'll be investigating this case and any  help would be welcome. :smile:
The following resource can be perfectly used to create, but state verification fails
  wildfly::util::resource { '/subsystem=jgroups/stack=gossip':
  content => {
    'protocols' =>
    [
      {'type' => 'TCPGOSSIP'},
      {'type' => 'MERGE3'},
      {'type' => 'FD_SOCK', 'socket-binding' => 'jgroups-tcp-fd'},
      {'type' => 'FD'},
      {'type' => 'VERIFY_SUSPECT'},
      {'type' => 'pbcast.NAKACK'},
      {'type' => 'UNICAST3'},
      {'type' => 'pbcast.STABLE'},
      {'type' => 'pbcast.GMS'},
      {'type' => 'UFC'},
      {'type' => 'MFC'},
      {'type' => 'FRAG2'},
      {'type' => 'RSVP'}
    ],
    'transport' => {
      'type' => 'TCP',
      'socket-binding' => 'jgroups-tcp'
    }
  }
}

Wildfly version: 9.0.2

More info:
JBoss AS 7/Wildly 8.2.1
	{
			"outcome" => "success",
			"result" => {
			    "protocols" => [
			        "MPING",
			        "MERGE2",
			        "FD_SOCK",
			        "FD",
			        "VERIFY_SUSPECT",
			        "pbcast.NAKACK",
			        "UNICAST2",
			        "pbcast.STABLE",
			        "pbcast.GMS",
			        "UFC",
			        "MFC",
			        "FRAG2",
			        "RSVP"
			    ],
			    "protocol" => {
			        "MPING" => undefined,
			        "MERGE2" => undefined,
			        "FD_SOCK" => undefined,
			        "FD" => undefined,
			        "VERIFY_SUSPECT" => undefined,
			        "pbcast.NAKACK" => undefined,
			        "UNICAST2" => undefined,
			        "pbcast.STABLE" => undefined,
			        "pbcast.GMS" => undefined,
			        "UFC" => undefined,
			        "MFC" => undefined,
			        "FRAG2" => undefined,
			        "RSVP" => undefined
			    },
			    "transport" => {"TRANSPORT" => undefined}
			}
	}

Wildfly 9.0.2
	{
			"outcome" => "success",
			"result" => {
			    "protocol" => {
			        "MPING" => undefined,
			        "MERGE3" => undefined,
			        "FD_SOCK" => undefined,
			        "FD" => undefined,
			        "VERIFY_SUSPECT" => undefined,
			        "pbcast.NAKACK2" => undefined,
			        "UNICAST3" => undefined,
			        "pbcast.STABLE" => undefined,
			        "pbcast.GMS" => undefined,
			        "MFC" => undefined,
			        "FRAG2" => undefined,
			        "RSVP" => undefined
			    },
			    "relay" => undefined,
			    "transport" => {"TCP" => undefined}
			}
	}

Wildfly 9.0.2 transport fits, but Wildfly 8.2.1 returns protocols. I'll scan all XSD's to find similar cases.

Couldn't find any similar cases.


feat: export severity type

Export severity type so it can be used consistently in customer components outside of library.

:tada: This PR is included in version 5.4.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Adding a function to generate a chloropleth

Added a function to plot shapefiles.

Codecov Report

Merging #21 (321cbb3) into main (94ba92e) will decrease coverage by 3.22%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main      #21      +/-   ##
==========================================
- Coverage   84.00%   80.77%   -3.23%
==========================================
  Files          22       23       +1
  Lines         600      619      +19
==========================================
- Hits          504      500       -4
- Misses         96      119      +23

Impacted Files
Coverage Δ

src/plot.jl
0.00% <0.00%> (ø)

src/data_cleaning/interpolation.jl
76.92% <0.00%> (-15.39%)
:arrow_down:

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 94ba92e...321cbb3. Read the comment docs.


Incorrect fuel amount loading

New bug :)
Everything seemed to go as expected, but fueling stopped at around 8100 lbs, when I was planned around 18000, the fuel in the fenix EFB then updated to say ~8100 instead of the original planned 18000. 18000/2.2 is around 8100, so I suspect there's an issue with kg vs lbs going on.
Edit: Tried switching the unit to lbs/s instead and that didn't seem to make a difference. Simbrief and plane are both configured in lbs.

I'm very surprised of that to be honest 😮
There was that Issue, yes - but that was already resolved many Versions ago.
Or at least it should have been. Maybe I got it somehow reintroduced by making the Refuel Speed configurable in either Unit.
Have to test it myself first.
Does it happen every Time? If that happens again it would be good to have the exact Simbrief-Flightplan at that time:

Open the URL https://www.simbrief.com/api/xml.fetcher.php?userid=X
(where X is your numerical Simbrief ID)
Save the resulting XML-Document as Text-File and attach it
Also the Logs of Fenix2GSX please

Disregard the initial Message.
It is an Bug that got introduced with the ECAM ("REFUELG") Message.
The Tool did correctly refuel the Plane according to the planned Fuel - period!
It is just that it has (re)set the planned Fuel to kg instead of lbs 😆 🤣
Try 0.2.9 :)

Well the fuel bug seems to have been fixed, but I think there's a new issue now. I have GSX audio control disabled, but my VHF1 is sticking to 118.100, even if I disable all options related to audio, it keeps automatically changing it to 118.100, and the volume control on the knob still works even if I disable it.

Moved to #5
Fuel Issue fixed with 0.2.9

This is also somewhat fuel related, so I'll just post it here, if you'd like me to temporarily open a new issue, let me know.
I noticed I got this message today

2023-04-29 11:31:54.299 [INF] [ GsxController:RunLoadingServices ] Fuel Hose disconnected - waiting for next Truck

Fueling stopped at some point in the middle and the fuel truck started to leave. Is this a GSX setting? Did this happen because the hose accidentally disconnected for some reason? Is there a way I can turn this off so that it always fuels in 1 trip?

Depending on the Situation that is completely normal!
I guess you where on a Position where Underground Refueling is not configured? The big Fuel-Truck which is used then has only a limited amount of Fuel (as IRL). When that truck is empty, GSX will disconnect the Hose and my Tool pauses Refueling and waits for the next Truck. Which should be send by GSX.
Yes there is a "Multiple Trips" Option in the GSX GUI. But it does also affect the Passenger Buses (so that there will only be one Bus with all Passenger in that)

I did know about that, but it seems like I already have that option disabled. I'll bring it up to Umberto and see what he says about it.
Thanks.

So a second Truck was not send?
Let us maybe gather some more Information first, or else it will just being pointed to my Tool - we need more proof ;)

It was the first time I'd seen it, so I actually restarted the flight since I thought it had loaded the wrong amount of fuel.
Looking back, the stand definitely was configured for underground fueling as I remember them bringing the fuel hose out to the outlet and connecting it.
I'll do some more testing and see if it comes up again.

That would be interesting ... the only Time GSX should disconnect the Hose although the Fuel Amount is still rising is when the Truck is empty. Else only when the Fuel is not increasing anymore (so the planned Fuel is on board).
Although we can not exclude that maybe SimConnect freaked out again and only returned Garbage. Because of that the L-Var for the Hose could have returned only zero, so Fenix2GSX was led to believe it was interrupted by GSX for the next Truck.

Okay ... Multiple Trips without underground Refueling can't happen - the Airbus does not have enough Capacity for that 🤣
Plane with 0kg onboard, Flightplan with 18987kg (19000 max) => one truck ^^

Version 0.3.0 is out, you can try if that makes any difference for you.
When I receive no further Feedback or Information in the next 24 Hours, I'll close this Issue.


False positive response when usting baselinkier.com

I have the following false positives when making API calls through baselinkier (baselinkier.com):
ModSecurity: Warning. Matched "Operator `ValidateUrlEncoding' with parameter `' against variable `REQUEST_BODY' (Value: `<?xml version="1.0" encoding="UTF-8"?>\x0a<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">\x0 (16924 characters omitted)' ) [file "/usr/local/etc/nginx/modsecurity/coreruleset/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf"] [line "375"] [id "920240"] [rev ""] [msg "URL Encoding Abuse Attack Attempt"] [data "<?xml version="1.0" encoding="UTF-8"?>\x0a<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">\x0a<product>\x0a\x09<id>308</id>\x0a\x09<id_manufacturer>0</id_manufacturer>\x0a\x09<id_supplier>0</id_supplier>\x0a\x09<id_category (15294 characters omitted)"] [severity "4"] [ver "OWASP_CRS/3.3.0"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-protocol"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/255/153/267/72"] [hostname "<IP_ADDRESS>"] [uri "/api/products/308"] [unique_id "161165737752.701232"] [ref "o0,33v233,33o3425,1v268,16491o3445,16192v261,16491"]

ModSecurity: Warning. Matched "Operator `Rx' with parameter `[\n\r]' against variable `ARGS_NAMES:gt;</language></description>\x0a\x09<description_short><language id' (Value: `gt;</language></description>\x0a\x09<description_short><language id' ) [file "/usr/local/etc/nginx/modsecurity/coreruleset/rules/REQUEST-921-PROTOCOL-ATTACK.conf"] [line "152"] [id "921150"] [rev ""] [msg "HTTP Header Injection Attack via payload (CR/LF detected)"] [data "Matched Data: \x0a found within ARGS_NAMES:gt;</language></description>\x0a\x09<description_short><language id: gt;</language></description>\x0a\x09<description_short><language id"] [severity "2"] [ver "OWASP_CRS/3.3.0"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-protocol"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/210/272/220/33"] [hostname "<IP_ADDRESS>"] [uri "/api/products/308"] [unique_id "161165737752.701232"] [ref "o3,1v13471,4t:urlDecodeUni,t:htmlEntityDecodeo3,1v13458,4t:urlDecodeUni,t:htmlEntityDecodeo3,1v13445,4t:urlDecodeUni,t:htmlEntityDecodeo3,1v13433,4t:urlDecodeUni,t:htmlEntityDecodeo3,1v13399,4t:urlDec (4435 characters omitted)"]

ModSecurity: Warning. Matched "Operator `Rx' with parameter `(?:;|\{|\||\|\||&|&&|\n|\r|\$\(|\$\(\(|`|\${|<\(|>\(|\(\s*\))\s*(?:{|\s*\(\s*|\w+=(?:[^\s]*|\$.*|\$.*|<.*|>.*|\'.*\'|\".*\")\s+|!\s*|\$)*\s*(?:'|\")*(?:[\?\*\[\]\(\)\-\|+\w'\"\./\\\\]+/)?[\\\\'\"]*(?: (5275 characters omitted)' against variable `ARGS:lt;img class' (Value: `"_2d49e_3B1Cq pt94f9 pt1itw ptux49 w1eai _2d49e_32cUf lazyloaded" src="https://a.otherportal.domain/orig (1100 characters omitted)' ) [file "/usr/local/etc/nginx/modsecurity/coreruleset/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf"] [line "138"] [id "932105"] [rev ""] [msg "Remote Command Execution: Unix Command Injection"] [data "Matched Data: ; top found within ARGS:lt;img class: "_2d49e_3B1Cq pt94s9 pt1itw ptux49 w1eai _2d49e_32cZf lazyloaded" src="https://a.otherportal.domain/original/127a6c/fd0df9bc88a78f9ea605e2183des" data-s (1052 characters omitted)"] [severity "2"] [ver "OWASP_CRS/3.3.0"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-shell"] [tag "platform-unix"] [tag "attack-rce"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/152/248/88"] [tag "PCI/6.5.2"] [hostname "<IP_ADDRESS>"] [uri "/api/products/308"] [unique_id "161165737752.701232"] [ref "o1035,5v8570,1150o1035,5v6739,1150o1087,5v4858,1200"]

ModSecurity: Warning. detected XSS using libinjection. [file "/usr/local/etc/nginx/modsecurity/coreruleset/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf"] [line "37"] [id "941100"] [rev ""] [msg "XSS Attack Detected via libinjection"] [data "Matched Data: XSS data found within ARGS:gt;</language></description>\x0a\x09<description_short><language id: "1" xlink:href="https://domain/api/1"></language></description_short>\x0a\x09<ava (2120 characters omitted)"] [severity "2"] [ver "OWASP_CRS/3.3.0"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-xss"] [tag "paranoia-level/2"] [tag "OWASP_CRS"] [tag "capec/1000/152/242"] [hostname "<IP_ADDRESS>"] [uri "/api/products/308"] [unique_id "161165737752.701232"] [ref "v268,13t:utf8toUnicode,t:urlDecodeUni,t:htmlEntityDecode,t:jsDecode,t:cssDecode,t:removeNullsv282,3132t:utf8toUnicode,t:urlDecodeUni,t:htmlEntityDecode,t:jsDecode,t:cssDecode,t:removeNullsv10090,39t:u (2261 characters omitted)"]

ModSecurity: Warning. Matched "Operator `Rx' with parameter `(?i)[\s\S](?:!ENTITY\s+(?:\S+|%\s+\S+)\s+(?:PUBLIC|SYSTEM)|x(?:link:href|html|mlns)|data:text\/html|pattern\b.*?=|formaction|\@import|;base64)\b' against variable `ARGS:gt;</language></description>\x0a\x09<description_short><language id' (Value: `"1" xlink:href="https://domain/api/1"></language></description_short>\x0a\x09<a (2419 characters omitted)' ) [file "/usr/local/etc/nginx/modsecurity/coreruleset/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf"] [line "119"] [id "941130"] [rev ""] [msg "XSS Filter - Category 3: Attribute Vector"] [data "Matched Data:  xlink:href found within ARGS:gt;</language></description>\x0a\x09<description_short><language id: "1" xlink:href="https://domain/api/1"></language></description_short>\x0a\x09< (2123 characters omitted)"] [severity "2"] [ver "OWASP_CRS/3.3.0"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-xss"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/152/242"] [hostname "<IP_ADDRESS>"] [uri "/api/products/308"] [unique_id "161165737752.701232"] [ref "o36,6v282,3132t:utf8toUnicode,t:urlDecodeUni,t:htmlEntityDecode,t:jsDecode,t:cssDecode,t:removeNullso3,11v13546,2216t:utf8toUnicode,t:urlDecodeUni,t:htmlEntityDecode,t:jsDecode,t:cssDecode,t:removeNul (2 characters omitted)"]

ModSecurity: Warning. Matched "Operator `Rx' with parameter `(?i:(?:<\w[\s\S]*[\s\/]|['\"](?:[\s\S]*[\s\/])?)(?:on(?:d(?:e(?:vice(?:(?:orienta|mo)tion|proximity|found|light)|livery(?:success|error)|activate)|r(?:ag(?:e(?:n(?:ter|d)|xit)|(?:gestur|leav)e|start|d (3146 characters omitted)' against variable `ARGS:gt;</language></description>\x0a\x09<description_short><language id' (Value: `"1" xlink:href="https://domain/api/1"></language></description_short>\x0a\x09<a (2419 characters omitted)' ) [file "/usr/local/etc/nginx/modsecurity/coreruleset/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf"] [line "180"] [id "941160"] [rev ""] [msg "NoScript XSS InjectionChecker: HTML Injection"] [data "Matched Data: <image  found within ARGS:gt;</language></description>\x0a\x09<description_short><language id: "1" xlink:href="https://domain/api/1"></language></description_short>\x0a\x09<avai (2119 characters omitted)"] [severity "2"] [ver "OWASP_CRS/3.3.0"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-xss"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/152/242"] [hostname "<IP_ADDRESS>"] [uri "/api/products/308"] [unique_id "161165737752.701232"] [ref "o0,21v10090,39t:utf8toUnicode,t:urlDecodeUni,t:htmlEntityDecode,t:jsDecode,t:cssDecode,t:removeNullso0,33v9984,87t:utf8toUnicode,t:urlDecodeUni,t:htmlEntityDecode,t:jsDecode,t:cssDecode,t:removeNullso (2201 characters omitted)"]

ModSecurity: Access denied with code 403 (phase 2). Matched "Operator `Ge' with parameter `50' against variable `TX:ANOMALY_SCORE' (Value: `668' ) [file "/usr/local/etc/nginx/modsecurity/coreruleset/rules/REQUEST-949-BLOCKING-EVALUATION.conf"] [line "80"] [id "949110"] [rev ""] [msg "Inbound Anomaly Score Exceeded (Total Score: 668)"] [data ""] [severity "2"] [ver "OWASP_CRS/3.3.0"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-generic"] [hostname "<IP_ADDRESS>"] [uri "/api/products/308"] [unique_id "161165737752.701232"] [ref ""]

CRS version (e.g., v3.3.4): 3.3.0
Paranoia level setting (e.g. PL1) : 1
Web Server and version or cloud provider / CDN (e.g., Apache httpd 2.4.54): Nginx
Operating System and version: FreeBSD

Hi @Munrok, are you sending corrent Content-Type header?

@Munrok, you did not respond to our request for more information. Please reopen if this is still relevant to you.


flaky test save_load_peers

        FAIL [   1.695s] iroh-net magic_endpoint::tests::save_load_peers

--- STDOUT:              iroh-net magic_endpoint::tests::save_load_peers ---

https://github.com/n0-computer/iroh/actions/runs/7278459463/job/19832714832?pr=1915

hopefully closed by https://github.com/n0-computer/iroh/pull/2457


After upgrading to Flutter 3.0 I can't run applications with macos_ui

Describe the bug
After the last Flutter update I could no longer run applications with macos_ui without errors.
To Reproduce

Upgrade to Flutter 3.0
Run a project that has macos_ui
The error will appear in the terminal

Flutter doctor:
[✓] Flutter (Channel stable, 3.0.0, on macOS 11.6.5 20G527 darwin-x64, locale de-DE)
• Flutter version 3.0.0 at /usr/local/Caskroom/flutter/3.0.0/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision ee4e09cce0 (3 days ago), 2022-05-09 16:45:18 -0700
• Engine revision d1b9a6938a
• Dart version 2.17.0
• DevTools version 2.12.2
[!] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc2)
• Android SDK at /Users/jonas/Library/Android/sdk
✗ cmdline-tools component is missing
Run path/to/sdkmanager --install "cmdline-tools;latest"
See https://developer.android.com/studio/command-line for more details.
✗ Android license status unknown.
Run flutter doctor --android-licenses to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• CocoaPods version 1.11.3
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2021.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)
[✓] IntelliJ IDEA Community Edition (version 2021.2.2)
• IntelliJ at /Applications/IntelliJ IDEA CE.app
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
[✓] VS Code (version 1.67.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.40.0
[✓] Connected device (3 available)
• iPhone 11 (mobile) • 799F1DAE-8CDC-4540-AE90-1ED2B89FDBD7 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-2
(simulator)
• macOS (desktop)    • macos                                • darwin-x64     • macOS 11.6.5 20G527 darwin-x64
• Chrome (web)       • chrome                               • web-javascript • Google Chrome 101.0.4951.64
! Error: DPhone is not connected. Xcode will continue when DPhone is connected. (code -13)
! Error: iPhone is not connected. Xcode will continue when iPhone is connected. (code -13)
! Error: timsegeco is not connected. Xcode will continue when timsegeco is connected. (code -13)
[✓] HTTP Host Availability
• All required HTTP hosts are available

Hello @jtdLab! Thanks for filing this issue.
I am already hard at work migrating macos_ui to support Flutter 3, and I expect that I will release a new version by the end of the week that does so.


Feature request - Change current workspace

Hello there!  I would like to propose a feature.
When TFTUI is open, it's done on the current workspaces which is logical. Then if you need to change the workspace, you should quit run tf workspace select foo and reopen TFTUI.
It should be nice to have some TFTUI command to do it inside the CLI interface. Something like ^W + workspace name
If you consider if this request is relevant. I can propose a Pull Request.
Please don't hesitate to ask more information or detail about this request.

Hi Juan,
I'm not using workspaces myself, that's why it's not included in the original TFTUI.
You're welcome to create a PR, I'll gladly add it to the product if it works. You'll probably need to add it in the GUI which may be a daunting task (specifically getting familiar with my spaghetti code :)).
I'll be happy to learn this specific TF feature and add it to the product myself, but I can't promise when I'll find the time to do that.
Let me know what you've decided.

Hey @juan-kabbali ,
Just released version 0.13.0, allowing switching workspaces from within the application.
Check it out, let me know what you think and if something's missing.

@idoavrah excellent, I tested version 0.13.0 and it works nice and smoothly 🚀
Thanks very much !


Data cleaning

Draft PR fixes

Fixed requirements files
Testing script now creates and deletes a 100 row CSV to a temporary BigQuery table.

Address comments and merge?

LGTM


Improve wording of user prompt

On the first use, we are prompted:
Secret:      1 of 1
Filename:    dev.yml
Secret Type: Secret Keyword
----------
1:memory: 500M
2:db_password: mysecretpassword
3:db_user: ledger
4:db_name: ledger
5:db_ssl_option: ssl=none
6:disk_quota: 500M
7:disable_internal_https: 'true'
----------
Is this a valid secret? i.e. not a false-positive (y)es, (n)o, (s)kip, (q)uit:

The wording of this prompt contains a double-negative which is hard to comprehend for a new user. To avoid the double negative, I propose an alternative clearer wording:
Secret:      1 of 1
Filename:    dev.yml
Secret Type: Secret Keyword
----------
1:memory: 500M
2:db_password: mysecretpassword
3:db_user: ledger
4:db_name: ledger
5:db_ssl_option: ssl=none
6:disk_quota: 500M
7:disable_internal_https: 'true'
----------
Prevent this secret from being committed? (y)es, (n)o, (s)kip, (q)uit:

Auditing can be done asynchronously from committing, you may audit a ton of baselines, and then punt off removing them from git, if all the secrets have been in the repo for years.
I generally agree double-negatives are bad, but I feel like most engineers understand 'false-positive' in this context more immediately than true-positive, that's just my opinion though. 🤔  I'd like some amount of consensus opinions from people that aren't you and me to chime in on this. (To discuss: i.e. not a false-positive -> i.e. a true-positive)

I definitely appreciate the PR though, would just like to hear more opinions.

My personal preference would be just to remove the false-positive and not change the wording to much; i.e. Is this a valid secret? i.e. a true-positive secret.
As @KevinHock, saying yes here doesn't actually prevent the secret from being committed, I didn't think.

Hi, I'm using detect-secrets as a new user and I just had to ask for help from people who have used it before because I wasn't clear what 'Is this a valid secret? i.e. not a false-positive' meant. I do understand what a false-positive is but the double negative did make it harder for me. I also faced confusion of what you mean by a 'valid' secret. Is a secret 'valid' if it is something that is really secret and you don't want others to see or does it mean it's valid if it is an 'allowed' secret because you've checked it and you are allowing it to to be included.
I like 'Prevent this secret from being committed?' as that is very clear to me what I should answer although unfortunately I  see this isn't relevant in all situations.
Regardless, the current text I found hard to confuse and would encourage a change.
Thanks!

I have to confess that I used the tool before reading the documentation, and so I hadn't understood that detect-secrets allows you to recognise existing secrets in your codebase and allow them to be committed whilst preventing new ones from being added.
To be honest I am still not entirely clear on what the consequences are of answering this prompt "yes" vs "no" is, and having now re-read the README.md I am still not clear! I think that what's going on is if I say "yes" then I'm saying that the thing that the scanner plugin found really is a secret and needs to be eventually expunged from this repository. If i say "no" then I'm saying that the scanner found something that looks like a secret but actually isn't a secret at all. Possibly what's going on is that the information I enter during this audit doesn't have any effect on the program's behaviour in the future, it's just something for the record so that human attention can be given to sorting out the secrets where I answered "yes" during the audit?
In the example I gave above, where there's a dev configuration used in ephemeral containers during testing, the mysecretpassword is a password. So I'm left scratching my head asking whether I should answer "yes" because technically it is a password, or should I answer "no" because although it's used for authentication in certain circumstances, it doesn't need to be kept secret and therefore in some sense is not a "valid" secret.
I think I'm just not very clear on what is going on during the audit. Help!?

Thanks for your feedback @heathd / @idavidmcdonald! I agree that the README is pretty outdated, and this feature should definitely be explained in much more detail. The audit feature was actually birthed from my scripted attempt at analyzing the large set of baselines we had to process when initially rolling out this tool -- and I'm afraid it was just left at that state for a long time.
Let me see what I can do to make this clearer. Mind if I add you as a reviewer for the future PR (porting this feature to our pre-v1-launch branch)?

@domanchi Very happy to help. Thanks in advance 👍

Closing as #363 fixed this in the upcoming v1 branch.


Workaround swift crash with nested mappings

The nested mapping code is crashing for us on ToJson.swift:30 when using multiple nested values like so:
first <- map["a.b"]
second <- map["a.c"]
The crash happens in ToJson.swift setValue on the second <- call, when it is referencing/reusing the nested 'a' dictionary. This appears (to my best guess, swift newbie!) to be a bug in the swift compiler and the nil coalescing operator.
The pull request rewrites this code slightly to workaround the problem.
The issue oddly only occurs on Release and not Debug builds.
To demonstrate the issue, change the ObjectMapper-iOS scheme to Test Build Configuration "Release" and run the ObjectMapper-iOSTests.
XCode 6.2 / Swift 1.1.
Isolated test case is in this gist: https://gist.github.com/barnybug/cc7b717387474bea18ac

Good catch! Thx for the fix :+1:


Add palindrome

@ming-tsai is it fine now?

@ming-tsai is it fine now?

Nice work

Thank you and I will keep this mistake in mind.

Nice work

Thank you and I will keep this mistake in mind.


Add retro-compatibility for EDMC 3.43

Just import tkinter or Tkinter, and precision of the character set in encode() function
I had left the plugin_start() function (replaced by plugin_start3(plugin_dir) in Python3) in the first PR.
On 3.50

On 3.43

Does Python 2 not support a default precision in encode()?

You're right, actually it works without. It seemed to me to have had an error on my side at the time of the publication by trying without using utf-8. I will test on my 2nd pc to validate.

ok, I will merge this once tested.

closes #14


Add banner component

Disabled until announcement is live.
Fixes firezone/gtm#189

Pull Request Test Coverage Report for Build 4bd7722f40ddf0ef4e305449fc466a73a4e9750d-PR-1732

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

Totals

Change from base Build eafb9f4f65365bf86aa0e043c64724df661f1ffd-PR-1731:
0.0%

Covered Lines:
1967

Relevant Lines:
2783

💛  - Coveralls


⬆<EMAIL_ADDRESS>

Bumps @atom/watcher from 1.3.1 to 1.3.3

I think this fixes build issues on Node 12? (as part of @atom/watcher v1.3.2, see this PR: https://github.com/atom/watcher/pull/234)
We are seeing occasional CI failures for installing this in our fork in certain circumstances.
https://dev.azure.com/DeeDeeG/b/_build/results?buildId=100&view=logs&j=0d2f351d-5899-57e2-0cb5-b37eb91cc930&t=4bcffbf6-507a-564a-0cc4-d6754c0b024f
Also, I believe this PR is a blocker for updating Node to v12 in apm. https://github.com/atom/apm/pull/889

@DeeDeeG This PR will be closed as this has been bumped in the current electron upgrade. We are working to close out the electron upgrade PR.


In Shape Maps, the color palette seems too subtle.

Can we get a wider range pallet to make the differences more visable?
Run the malloy_team query in names_3.malloy

Red to green is a classic - other thoughts?

Here's our current pastel gradient that we use for charts (the non-pastel version hurts my eyes):

I like what you did with the contrast! If we go the red/green route, I think I've read that you can use magenta + green to be slightly friendlier to red-green color blindness

I've done a TON of research into this, while working on the Looker color palettes. We need to keep things single-color, starting lighter, and ending darker - until we get some smarts put in for divergent color setups (negative-to-zero-to-positive). Multiple colors don't work for the regular case because you can't tell what the colors mean. :-)

looker palettes...

For now we landed on light blue to dark blue. The larger issue of reworking our visualizations to be more friendly remains open for now.


Port [Core] remove URL validations on credential scopes (#25896)

It is possible that credential scopes are not in the format of valid URL. It is also noted in the doc that there are shorter form of scope https://learn.microsoft.com/EN-US/azure/active-directory/develop/scopes-oidc

In requests to the authorization, token or consent endpoints for the
Microsoft Identity platform, if the resource identifier is omitted in the scope parameter, the resource is assumed to be Microsoft Graph. For example, scope=User.Read is equivalent to
https://graph.microsoft.com/User.Read.

Related issue: #25881

CI is good. overriding check-enforcer
https://dev.azure.com/azure-sdk/public/_build/results?buildId=2788025&view=results

/check-enforcer override


Retrain SAPBert to the Babel synonym files specifically

This would be a good way to see how easy it is to customized SAPBert for particular vocabularies, and would allow us to set up a SAPBert instance geared specifically for the NCATS Translator use-case (i.e. to replace https://github.com/TranslatorSRI/NameResolution).

The SAPBert training files from Babel are now available on Hatteras at /projects/babel/sapbert-training/2022oct13/compendia -- @hyi please let me know if I need to fix them in any way!


Added exporting of Thumbs up playlist

This resolves #6
I put this feature together as part of another project I'm working on, figured you may find it useful :)
Feel free to suggest changes and improvements. I made a big refactor and Python isn't my primary language. For example, I'm quite confident there's a more "idiomatic" or "code-golf"y way to do this
Thanks for making these very useful scripts!

In the latest gmusicapi the get_thumbs_up_songs method has been renamed to get_promoted_songs.  The change in name occured due to https://github.com/simon-weber/Unofficial-Google-Music-API/issues/282  Can you submit a change to your code so that it would be compatible with the latest version of gmusicapi?
Also, a call to the get_..._songs method (under both the new and old name) doesn't return as many results as I would have thought there should be.  Have you noticed similar odd behavior?  In my case I have over 1500 songs thumbed up, and it returned only about 300.  The method comments indicate it only returns all access tracks that have been rated, but I know I have more than 300 all access tracks that I've thumbed up.

Hey soulfx,
I should have actually checked the output of my change more closely! >_<
So get_thumbs_up_songs clearly doesn't return all of the songs in the Thumbs up playlist (it was about 100 out of 800 for me). The api.get_promoted_songs() returns a "has no attribute" error, so maybe the version of the library on pip doesn't include this change? I still need to look into that. However, it doesn't appear that this function call is intended to return the thumbs-up playlist. From the comments of the method: Promoted tracks are determined in an unknown fashion, but positively-rated library tracks are common.
Interestingly, the following code block also returns a subset of the Thumbs up playlist. I got about 700 of my 800 tracks using this
# get thumbs up playlist
thumbs_up_tracks = []
for track in library:
    if track.get('rating') is not None and int(track.get('rating')) > 1:
        thumbs_up_tracks.append(track)

Oddly enough, the subset this method return seems to be consistent. Since some of the tracks omitted were all-access tracks (and not personal uploaded tracks), I would imagine the this is due to gremlins in the API. However, I can update my code with the above snippet if it's the closest we'd be able to get.

Hi scowalt,
I appreciate you looking into this.  The code block that you provide seems like it would be closer to returning a list of thumbed up tracks than the api method.  I suggest we go with that for now.  It would give us something to build on.
I imagine that one could ensure that all thumbed up tracks are added to the library using the web interface prior to running the export script.  It should then be able to export all tracks.
Regards,
soul

I changed my code to include the code block I posted above. I also squeezed my commits.
If I find a way to reliably get all of the Thumbs up tracks I will be sure to make a new pull request (or modify this one if left open)


dotnet core > Visual studio Code

Hi there,
I'm using VS Code on the mac and working with dot net core MVC. I can't seem to get this working.
Could you tell me how to add it to my project and I will follow the steps and feedback any errors.
Thanks

What exactly doesn't work?

Did you manage to get it working?

Morning,
No unfortunately not.
Im using Visual Studio Code on a mac. not sure if thats stoping it. Im keen to get them working.

On 3 Oct 2016, at 08:46, Muchiachio<EMAIL_ADDRESS>wrote:
Did you manage to get it working?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/NonFactors/MVC6.Grid/issues/18#issuecomment-251045476, or mute the thread https://github.com/notifications/unsubscribe-auth/AE70OHQAQFeRsFSiufmFMg2YyIiABQFIks5qwLLCgaJpZM4KJw5A.

Could you share your errors and stuff?
I tested it on .net core and it was working, I would fix vs code and mac issues if they appear on those platforms.

Could you tell me how to add it to my project and I will follow the steps to get it working and feed back any errors.
Does that work for you?
Thanks Jon

On 3 Oct 2016, at 09:24, Muchiachio<EMAIL_ADDRESS>wrote:
Could you share your errors and stuff?
I tested it on .net core and it was working, I would fix vs code and mac issues if they appear on those platforms.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/NonFactors/MVC6.Grid/issues/18#issuecomment-251051455, or mute the thread https://github.com/notifications/unsubscribe-auth/AE70OHW2T0518pi1jagRyFCLxsSLUKCqks5qwLungaJpZM4KJw5A.

Installation notes can be found on official web site.
The only difference could be, that you would install package by hand in project.json.

I was able to get it working on Core by doing the following:

install via nuget per the official installation instructions
add to the Startup.cs as per the official installation instructions.

Now came the tricky part.  The installation does not create the javascript, css or views per the Core project structure.  I created a new, temporary MCV5 project and installed the grid per the nuget package.  On this project, all files are created appropriately.

Re-open Core solution
Manually add the CSS from the Content/MvcGrid folder of the temp project into the wwwroot/css folder (or other place of your choosing)
Manually add the JS from the Scripts/MvcGrid folder of the temp project into the wwwroot/js folder (or other place of your choosing)
Copy the entire Views/Shared/MvcGrid folder of the temp project into the Views/Shared folder.
Add the css and js files into the _Layout.cshtml file (or specific page)
Created a document.ready function and invoked the "$('.mvc-grid').mvcgrid();" command as directed in the instructions.

This took 5 minutes and worked great!!  Hope this helps

Yes, nuget and project.json doesn't play along here. By not adding nuget content files as project content, so it needs to be added by hand :disappointed: Glad to see it worked for you @tkappeler.
@jhallam3 did you managed to install the grid in your project?

I can't find the css and js files at all with the MVC6 version.  It is not a question of adding by hand because they simply are not present anywhere on the hard drive.  The installation instructions are in error in that regard (or the nuget package is).  So it sounds like the only way at the moment to get these files, as mentioned above, is by installing the MVC5 version and grabbing them from there (hoping they will work properly with the MVC6 version).

Did you restore the packages? I double checked and all the files are in nuget package and are downloaded correctly on restore into this folder %userprofile%\.nuget\packages\nonfactors.grid.mvc6\1.4.0\content.

I can see %UserProfile%.nuget\packages\nonfactors.grid.core.mvc6\1.4.0  (note the "core").
But there is no content folder, just a lib folder containing the dll.

Maybe you only installed the core package and not the actual one with the content and ll dependency?

I have not seen an "actual" one with content, and I've looked.  What is the name of the package containing content, for Core MVC6 ?

NonFactors.Grid.Mvc6 contains the content files and contains a dependency on NonFactors.Grid.Core.Mvc6.
While NonFactors.Grid.Core.Mvc6 only contains the dlls.

ok, that works!  My apologies, it appears that I was not following the instructions!


added deplyo docs action

Hi, I added an action to deploy the docs. I am still figuring out how to test this.
I used this github action for deploying the folder to gh-pages. https://github.com/marketplace/actions/deploy-to-github-pages

Okay so it is deployed at - https://gajraj.dev/ziti-sdk-swift/, I was able to test using this PR - https://github.com/gajrajgchouhan/ziti-sdk-swift/pull/2

Awesome - thanks!

Closes 153


[function.dd] Improve Lazy Parameters section

Add two sub-headings for better Table of Contents.
Be more precise about lazy parameters.
Add link from lazy params to lazy variadics.

Please squash the commits.