Port 0.12.3 changes from graphql-js

Instead of doing one PR for each and every change I now decided to do everything in one branch because I started getting tons of merge conflicts as the changes usually depend on other changes.
For review each commit could be reviewed separately.
I hope this is okay, I know that huge PRs are a pain to review, but otherwise it would block me completely.
I will list the changes here:
0.12.3

[ ] Fix how TypeInfo handles inline fragments without type | graphql/graphql-js#1041
[ ] Uniform parsing of queries with short-hand syntax with regular queries | graphql/graphql-js#1094
[ ] RFC: Block String | graphql/graphql-js#926
[ ] Improvements to printing block strings | graphql/graphql-js@f9e67c403a4667372684ee8c3e82e1f0ba27031b
[ ] RFC: Descriptions as strings | graphql/graphql-js#927 | BREAKING CHANGE: This does not parse descriptions from comments by default anymore and the value of description in Nodes changed from string to StringValueNode
[ ] Fix print of block string with leading space and quotation | graphql/graphql-js#1190
[ ] Support for union/interface types when using buildSchema | graphql/graphql-js#947
[ ] Add additional number lexing test | graphql/graphql-js@72421378550cf51b13c6db59b8fc912591fd1a4b
[ ] Remove notes about subscription being experimental | graphql/graphql-js@bf4a25a33a62280e82680518adc279e34ec816e0
[ ] Simplify operationTypes validation | graphql/graphql-js#999
[ ] Detect added nullable input field or added nullable argument | graphql/graphql-js#1096 | graphql/graphql-js@db4cfdc
[ ] Fix parsing of default values in build-schema | graphql/graphql-js#903 | graphql/graphql-js@714ee98
[ ] (Potentially Breaking) Allow serializing scalars as null. | graphql/graphql-js#1104
[ ] Remove duplicated code from buildASTSchema and extendSchema | graphql/graphql-js#1000 | BREAKING CHANGE: SchemaBuilder::build() and buildAST() and constructor removed the typedecorator, as not needed anymore as library can now resolve union and interfaces from generated schemas, see commit above.
[ ] Allow to extend GraphQL errors with additional properties | graphql/graphql-js#928
[ ] Add predicates to for built-in types | graphql/graphql-js#924
[ ] Update to match SDL changes | graphql/graphql-js#1102
[ ] Fix infinite loop on invalid queries in OverlappingFields | graphql/graphql-js#1111
[ ] Improve introspection types + new getIntrospectionQuery() | graphql/graphql-js#1113
[ ] Read-only AST types | graphql/graphql-js#1121
[ ] SDL Spec changes | graphql/graphql-js#1117
[ ] Allow constructing GraphQLError with single node. | graphql/graphql-js#1123
[ ] Include test that printSchema includes non-spec directives. | graphql/graphql-js@007407d
[ ] Fix unhandled error when parsing custom scalar literals. | graphql/graphql-js#1126
[ ] New: printError() | graphql/graphql-js#1129 | BREAKING CHANGE: The SyntaxError message does not contain the codeframe anymore and only the message, (string) $error will print the codeframe.
[ ] Validate schema root types and directives | graphql/graphql-js#1124
[ ] Fix printError/locations for multiple nodes. | graphql/graphql-js#1131
[ ] Always extract extensions from the original error if possible | graphql/graphql-js@2d08496720088dbe65ebea312c8526bd48fb8ee8
[ ] Preserve original coercion errors, improve error quality. | graphql/graphql-js#1133
[ ] Better Predicates | graphql/graphql-js#1137
[ ] Fix Bug in PossibleFragmentSpreads validator | graphql/graphql-js@7e147a8
[ ] Address recent SDL spec changes | graphql/graphql-js#1139
[ ] Move schema validation into separate step (type constructors) | graphql/graphql-js#1132
[ ] Robust type info | graphql/graphql-js#1143
[ ] Add experimental support for parsing variable definitions in fragments | graphql/graphql-js#1141
[ ] Update some validators to latest upstream version | graphql/graphql-js#355 graphql/graphql-js#1147
[ ] Validate literals in a single rule with finer precision | graphql/graphql-js#1144
[ ] Fix path argument. Enchance visit test to validate all arguments | graphql/graphql-js#1149
[ ] Find breaking directive changes | graphql/graphql-js#1152
[ ] Add suggestions for invalid values | graphql/graphql-js#1153

Fixes not related to 0.12 or 0.13

[ ] Fix KnownDirectives validator to support all directives
[ ] Improve validation error message when field names conflict | graphql/graphql-js#363
[ ] Validation: improving overlapping fields quality | graphql/graphql-js#386
[ ] Adding an interface to a type is now a dangerous change. | graphql/graphql-js#992

Docs

[ ] 1

Coverage increased (+0.4%) to 93.266% when pulling d70ae5de1d17e242a28f67f516978623eb379852 on danez:012 into 94525c00252696b47673db1ca56fe0436c5949be on webonyx:master.

Awesome, let me know when you are done, I'll review and merge it. Thanks!

Okay I added all the relevant commits from 0.11 till 0.12.3 from graphql-js.
There are a couple of breaking changes, most of them I either already added to UPGRADE doc or made them backwards compatible.
Major changes are the new SchemaDefinitionLanguage from the spec, a new SchemaValidator,  updated validation rules, more breaking changes detection.
Lots of validations stuff was already removed from the constructor here, which they now also did in the  JS library. I tried to sync the two libraries in this topic and moved some logic from TypeClasses (for example Directive) to the SchemaValidationContext.
There are still some checks left in Type::assertValid() but most of them are now not related anymore to the Schema but more to the configuration of the types (ala checking if typeresolver is function etc.) Maybe this can now be cleaned up better than the current status.
I thought about moving all the new Validation of the Schema to the corresponding Type classes, but that way it will be way harder to make updates from upstream, so I left it for now in the SchemaValidationContext.
I also run phpbench. Before
❯ bin/phpbench run
PhpBench 0.15-dev (@git_version@). Running benchmarks.
 Running benchmarks.
Using configuration file: /Users/danieltschinder/Documents/Github/graphql-php/phpbench.json

\GraphQL\Benchmarks\HugeSchemaBench

    benchSchema                   I0 P0 	[μ Mo]/r: 146.235 146.235 (ms) 	[μSD μRSD]/r: 0.000ms 0.00%
    benchSchemaLazy               I0 P0 	[μ Mo]/r: 0.009 0.009 (ms) 	[μSD μRSD]/r: 0.000ms 0.00%
    benchSmallQuery               I0 P0 	[μ Mo]/r: 58.761 58.761 (ms) 	[μSD μRSD]/r: 0.000ms 0.00%
    benchSmallQueryLazy           I0 P0 	[μ Mo]/r: 54.593 54.593 (ms) 	[μSD μRSD]/r: 0.000ms 0.00%

\GraphQL\Benchmarks\StarWarsBench

    benchSchema                   I1 P0 	[μ Mo]/r: 0.152 0.152 (ms) 	[μSD μRSD]/r: 0.005ms 3.38%
    benchHeroQuery                I1 P0 	[μ Mo]/r: 0.929 0.929 (ms) 	[μSD μRSD]/r: 0.006ms 0.65%
    benchNestedQuery              I1 P0 	[μ Mo]/r: 2.197 2.197 (ms) 	[μSD μRSD]/r: 0.025ms 1.13%
    benchQueryWithFragment        I1 P0 	[μ Mo]/r: 2.630 2.630 (ms) 	[μSD μRSD]/r: 0.101ms 3.85%
    benchStarWarsIntrospectionQueryI1 P0 	[μ Mo]/r: 24.592 24.593 (ms) 	[μSD μRSD]/r: 0.844ms 3.43%

\GraphQL\Benchmarks\LexerBench

    benchIntrospectionQuery       I4 P0 	[μ Mo]/r: 1.339 1.348 (ms) 	[μSD μRSD]/r: 0.021ms 1.60%

10 subjects, 19 iterations, 170 revs, 0 rejects, 0 failures, 0 warnings
(best [mean mode] worst) = 0.009 [29.144 29.145] 0.009 (ms)
⅀T: 327.296ms μSD/r 0.100ms μRSD/r: 1.404%

So the benchSchema seems to have gotten a little bit faster and also the benchSmallQuery
Let me know what you think, and sorry again for the huuuuggggeee PR. If I can help you somehow with reviewing let me know. I created the checkboxes in the initial description that you might want to use to tick reviewed commits if you want to do reviews based on commits.

This is fantastic! I wanted to port these changes in near future, just couldn't find big-enough time window (as I've been quite busy recently). So your PR is sooo helpful, thanks again! But reviewing it will also take some time %)

One major problem is a removal of a typeConfigDecorator from the buildSchema. We actually used it to attach resolvers to fields and types. Not just to make interfaces and unions resolvable.
As far as I understand regular buildSchema doesn't allow you to do this and just asks to rely on root value for resolution process? If so, then this is something we will probably have to revert.

Okay I understand, I will add it back.

Okay I added it back and also fixed a bug with the lazy loading of types which I introduced.

Merged! One final thing that concerns me is that we expose Utils::undefined() in scalars types. It is kinda hack to simplify maintenance and was not supposed to be exposed to library users (and it will happen when users will start building their custom types looking at existing internal types).
How do you think can we just throw instead of returning undefined? Looks like exceptions in those methods are handled correctly, so there shouldn't be a major difference, right?

And thank you so much for this huge work!

🎉 Feel free to ping me if bugs come up.

@danez So any ideas about throwing vs returning Utils::undefined() (see the comment above). Will it work, how do you think?

Ah sorry I missed that comment. Yes good point, I guess throwing would have the same effect as Utils::undefined().
We just need to make sure that null isn't used for this as it can always be a valid value.

Cool, as soon as we switch to throw vs Utils::undefined(), I'll release version 0.12. Thanks!


Fix schema dump on multiple databases setup with ActiveRecord > 7.2.0

Closes https://github.com/jenseng/hair_trigger/issues/130

Hi @jenseng. Do you have time to merge and release this fix? Would be great, because our Rails 7.2 upgrade is blocked by this.


Add binary storage option

Orleans storage providers should be able store grain state directly in a binary format and not in JSON.
The StorageProvider attribute has a property which indicates if the serialization should be to JSON or not and Orleans has a binary serializer SerializationManager which can serialize data to binary in a none-backward compatible manner. That is one option and there are many others as well.

This would be a really nice feature for storing BLOB data.
Azure provider and many others already support this so by looking at their code one can add the support easily. I'm really short of time these days otherwise I would do it.
Also it can wait until somebody needs it and doesn't have a very high priority

@ashkan-saeedi-mazdeh I'm working on adding an official BinaryTranscoder to the Couchbase SDK, which we can then use as part of this improvement.

There is now a BinaryTranscoder available in the .NET Couchbase SDK from 2.4.6. I'll try to do a PR to switch over what Transcoder to use over the next couple of days.

Awesome, Keep in mind that JSON should remain an option due to it being queryable and more friendly to versioning, The StorageProvider attribute passed to the provider has a property IsJson or something like that. I'm very busy for the next month but will review the PRs for sure at minimum.

Yeah, plan is to make it configurable. Default would be JSON.


Support versions of git without --name-only

Pull Request Description
What issue does this change request address?
Closes #1732
What are the significant changes in functionality due to this change request?
Supports an older version of git.

For Change Control Board: Change Request Review
The following review must be completed by an authorized member of the Change Control Board.

[x] 1. Review all computer code.
[x] 2. If any changes occur to the input syntax, there must be an accompanying change to the user manual and xsd schema. If the input syntax change deprecates existing input files, a conversion script needs to be added (see Conversion Scripts).
[x] 3. Make sure the Python code and commenting standards are respected (camelBack, etc.) - See on the wiki for details.
[x] 4. Automated Tests should pass, including run_tests, pylint, manual building and xsd tests. If there are changes to Simulation.py or JobHandler.py the qsub tests must pass.
[x] 5. If significant functionality is added, there must  be tests added to check this. Tests should cover all possible options.  Multiple short tests are preferred over one large test. If new development on the internal JobHandler parallel system is performed, a cluster test must be added setting, in  XML block, the node <internalParallel> to True.
[x] 6. If the change modifies or adds a requirement or a requirement based test case, the Change Control Board's Chair or designee also needs to approve the change.  The requirements and the requirements test shall be in sync.
[x] 7. The merge request must reference an issue.  If the issue is closed, the issue close checklist shall be done.
[x] 8. If an analytic test is changed/added is the the analytic documentation updated/added?
[x] 9. If any test used as a basis for documentation examples (currently found in raven/tests/framework/user_guide and raven/docs/workshop) have been changed, the associated documentation must be reviewed and assured the text matches the example.

Tests are green, and checklist is satisfied, PR can be merged. @joshua-cogliati-inl Thanks for fixing the problem


Ignored keybinding for replacing "ctrl+p" with "alt+2"

VSCode Version: 1.20.1
OS Version: Windows 10

Steps to Reproduce:

Add the following entries to your keybindings.json:

    {
        "key": "alt+2",
        "command": "workbench.action.quickOpenNavigateNextInFilePicker",
        "when": "inFilesPicker && inQuickOpen"
    },
    {
        "key": "ctrl+p",
        "command": "-workbench.action.quickOpenNavigateNextInFilePicker",
        "when": "inFilesPicker && inQuickOpen"
    }

Save and try key combinations ctrl-p and alt-2: they still perform their original actions

Does this issue occur when all extensions are disabled?: Yes/No
yes

@vldmr-bus
This works as expected AFAICT. We ship by default with two keybindings for ctrl+p:
{ "key": "ctrl+p",                "command": "workbench.action.quickOpen" },
{ "key": "ctrl+p",                "command": "workbench.action.quickOpenNavigateNextInFilePicker",
                                     "when": "inFilesPicker && inQuickOpen" },

The first one binds that ctrl+P opens the quick pick and the second one that it goes to the next file. Your edits have changed the second one to alt+2.
If you wish to change both, then you must change both.


Try removing asyncrun

I'm trying to move to using things like tmux for handling async processes.
Biggest loss would be get_root.  There is https://github.com/airblade/vim-rooter , but I kinda like cwd to be with the file.
Perhaps this lua snippet could be translated back to vimscript:
https://www.reddit.com/r/neovim/comments/x0563u/how_to_automatically_cd_to_the_git_root_of_the/
local function get_git_root()
    local dot_git_path = vim.fn.finddir(".git", ".;")
    return vim.fn.fnamemodify(dot_git_path, ":h")
end

And it's gone.


the user and group settings in config.json are not honoured.

From @jodh-intel on July 18, 2016 16:58
Specifically, process.user.uid, process.user.gid and process.additionalGids are ignored.
See:

clr_oci_create_container_workload() in src/oci.c.
https://github.com/opencontainers/runtime-spec/blob/master/config.md#user.

Copied from original issue: 01org/cc-oci-runtime#20

From @jodh-intel on August 23, 2016 13:37
It would make sense to handle #139 here too.

From @jodh-intel on August 31, 2016 10:5
Although the default user+group are root, docker 1.12 specifies process.additionalGids=10 (wheel).

Issue fixed and verified: https://github.com/clearcontainers/tests/pull/427


Uncaught TypeError: Cannot set property 'innerHTML' of undefined

[Enter steps to reproduce below:]

While testing this tutorial:
http://angular-meteor.com/tutorials/angular2/3-way-data-binding.
Section: Inserting Parties from the Console
Using the meteor helper module for running the server directly in Atom
started a shell in Atom and accessed the mongo shell by "meteor mongo"
when I typed "db" for the next command in the tutorial the reported bug showed up
5 Note: The Atom editor was in a small window mode where the shell could only show a line.

Atom Version: 1.1.0
System: Ubuntu 14.04.3
Thrown From: terminal-plus package, v0.14.0
Stack Trace
Uncaught TypeError: Cannot set property 'innerHTML' of undefined
At /home/farishouda/.atom/packages/terminal-plus/node_modules/term.js/src/term.js:1689

TypeError: Cannot set property 'innerHTML' of undefined
  at Terminal.refresh (/home/farishouda/.atom/packages/terminal-plus/node_modules/term.js/src/term.js:1689:32)
  at HTMLTextAreaElement.onInput (/home/farishouda/.atom/packages/terminal-plus/node_modules/term.js/src/term.js:713:12)

Commands
     -4:42.2.0 blur (ol.tree-view.full-menu.list-tree.has-collapsable-children.focusable-panel)
     -4:34.3.0 core:confirm (atom-text-editor.editor.mini.is-focused)
  7x -4:34.3.0 blur (atom-text-editor.editor.mini.is-focused)
     -4:33.8.0 linter:lint (atom-text-editor.editor.vim-mode.normal-mode.is-focused)
  2x -4:29.8.0 blur (atom-text-editor.editor.vim-mode.normal-mode.is-focused)
     -4:24.8.0 vim-mode:activate-insert-mode (atom-text-editor.editor.vim-mode.normal-mode.is-focused)
  2x -4:23.4.0 core:backspace (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
  2x -4:10.2.0 blur (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -4:06.7.0 core:move-right (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
     -4:02.7.0 vim-mode:activate-normal-mode (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
     -4:01.9.0 ex-mode:open (atom-text-editor.editor.vim-mode.is-focused.normal-mode)
     -4:01.7.0 blur (atom-text-editor.editor.vim-mode.is-focused.normal-mode)
     -4:01.6.0 core:confirm (atom-text-editor.editor.mini.is-focused)
 29x -4:01.5.0 blur (atom-text-editor.editor.mini.is-focused)
     -2:50.9.0 core:move-up (textarea.)
 43x -2:48.9.0 blur (textarea.)

Config
{
  "core": {
    "disabledPackages": [
      "r-exec",
      "language-r"
    ]
  },
  "terminal-plus": {
    "core": {},
    "style": {}
  }
}

Installed Packages
# User
.bin, vundefined
angularjs, v0.3.3
atom-django, v0.3.0
atom-typescript, v7.8.0
color-picker, v2.0.13
css-snippets, v0.9.0
ex-mode, v0.7.0
keyboard-localization, v1.4.10
linter, v1.10.0
meteor-api, v2.20.0
meteor-helper, v0.27.0
minimap, v4.16.0
project-manager, v2.6.5
script, v3.0.2
terminal-plus, v0.14.0
vim-mode, v0.63.0

# Dev
No dev packages

The Atom editor was in a small window mode where the shell could only show a line.

Thank you for the detailed report. I was able to reproduce the issue with this detail. Expect the next release to have this issue fixed. You will probably have to restart Atom after updating Terminal-Plus for the changes to take effect.

Fixed as of v0.14.1

Thank you for the very fast update!!
Great job and I really appreciate this tool!

No problem. Thank you for using Terminal-Plus.


Support SQLite ignore syntax

This expands the condition that adds "IGNORE" when ignore: true is set and adapter_name is "MySQL" so that it also adds "OR IGNORE" when adapter_name matches /sqlite.*/.

Hello @jfiander -- could you describe a bit about what the purpose of this PR is? I know I could read the code, but a description of what it's intent is and what I should look for in review would be helpful.

@jamis Description added!

I've updated the regex to be case-insensitive, and also added another test to cover both flavors of adapter_name for SQLite.

This looks great! Thank you so much.


Duplicate HTML files generated for same topic [DITA OT 2.x]

Tested with DITA OT 2.2.5 and manual build from dev branch. Problem does not occur with DITA OT 1.8.
We detected this problem in our user's manual but I managed to trim it down to two files.
Samples are here:
https://www.oxygenxml.com/forum/files/twoRefsProblem.zip
Basically the DITA Map is something like this:
  <!DOCTYPE bookmap
    PUBLIC "-//OASIS//DTD DITA BookMap//EN" "http://docs.oasis-open.org/dita/v1.1/OS/dtd/bookmap.dtd">
  <bookmap>
    <chapter keys="product">
      <topicmeta>
        <keywords>
          <keyword>AAAA</keyword>
        </keywords>
      </topicmeta>
      <topicref href="topics/topic.dita"/>
      <topicref href="topics/topic.dita"/>
    </chapter>
  </bookmap>

and the "topic.dita" has the content:
    <!DOCTYPE topic
      PUBLIC "-//OASIS//DTD DITA Topic//EN" "http://docs.oasis-open.org/dita/v1.1/OS/dtd/topic.dtd">
    <topic id="using-the-project-view">
      <title>ABC</title>

<ph keyref="product"/>.

    </topic>

When publishing to XHTML there are two HTML documents in the output folder called "topic.html" and "topic-1.html" although in my opinion this should not be the case, users can add copy-to if they want separate HTML docs in the output folder.
If the topic.dita does not contain the keyref, then the problem does not occur.

The problem is that if branch filtering is involved then the processor must make two copies of the output file for each reference in a different scope because the key references could have different bindings in the different scopes.
In the face of that, the easiest thing to do is to make all duplicate references into unique result files.
Of course, it is technically possible to analyze the documents and determine when a given file would actually require duplication but that could be very expensive.
The challenge of managing the mapping from uses of topics to result HTML files is significant and goes beyond the challenges posed by branch filtering. For example, in EPUB you must create new result HTML files for each use of a topic (which is why D4P has a preprocessing extension that does this 1.8.5) but for the same document published to the Web you may want to never have duplicate result files, even when keyrefs in different scopes would result in different rendered results (which would require something in the generated HTML to enable dynamic rendering of access-context-specific content).
So while the 2.x behavior is not necessarily ideal it is not wrong per the spec and in the face of key scopes is required in the absence of some way to handle the use-context differences in the HTML as browsed.

In the face of that, the easiest thing to do is to make all duplicate references into unique result files.
Of course, it is technically possible to analyze the documents and determine when a given file would actually require duplication but that could be very expensive.

Well, if the topic does not have any keyrefs inside it, the DITA OT 2.x will create a single HTML for it. So some kind of analysis is still done. I would prefer that when a topic is referenced in multiple places but in the same key scope context the generated HTML to be the same.

If a topic has no keyrefs and no non-global filters apply to it then I agree that it cannot produce different results in different key scopes. But lack of key references is not sufficient as branch filtering has to also be taken into account. Perhaps the OT already does that?

[Tagged as enhancement, though I'm not sure that is entirely appropriate. I think that the current code is working as designed, for the reasons @drmacro described, even if the result for the simple case is not optimal.]

Well, it's not behaving in the same way in which DITA OT 1.8 does. Problem is that I can no longer refer for end-user convenience purposes a topic in multiple places in the DITA Map without creating multiple HTML documents for it in the output folder and thus showing up multiple identical search results when the end user are searching for the topic.

Understood, and I get why you are expecting that.
In general, over the last month, I've been trying to tag all of our issues as either feature/enhancement, bug, or something like support/question. This came out of the work to scan our entire backlog, where I found a few items that never got tagged, should have been closed, but remained open and unnoticed.
I'm having a hard time figuring out what category this one goes into - either feature/enhancement, because it's working based on the current design, or bug, because it used to work better and is not expected for the simple case.

I would say this is an enhancement since it's clear that the current logic for determining when a result HTML file must be generated needs to be made more sophisticated. The current behavior is correct in the sense that it ensures that the results are correct with respect to the demands of branch filtering and key scopes. But it is is not sufficient to existing user requirements for managing HTML generation details.

No problem, I understand.

Some background (that doesn't help with the issue): when I implemented key scopes, the goal was to make the initial implementation handle the most common uses cases and if there were corner cases, to tackle those later on. We will have to defer covering cases like this issue in 3.0.

Should we open a docs issue addressing this change? Changing the behavior might be an enhancement, but if you migrate from a previous toolkit version, you're going to experience it as a bug.

I'm not sure I understand this:

There are steps you can take in your content to address the change, like not defining the same key in both a parent map and a submap.

You saw the small example I posted on the issue, I'm not sure how this problem can be avoided. Honestly maybe at least we would have a param which disables DITA 1.3 processing completely in the case when a project does not use DITA 1.3 at all.

Actually, it's possible I encountered a separate, but similar bug. Turns out, not all of the duplicate topics I were related to duplicate key definitions; some were simply referenced (by @href) in both a parent map and sub-map.
I'll try to create a small example that duplicates the error.


Area selection to get an extent to use in remote OGC services like WFS

I need to select an area (extent) in order to query WFS service,
so I implemented a control named Selection based on Ruler and GeoImageDraggingControl (for activation button)
you can check all on  fork busatoa:feature/add_selection_control
The example code is this:
new Selection({
        ignoreTerrain: false,
        autoSelectionHide:true,  //used for clear rectangle after passing extent to callback
        onSelect: (extent) => {
            var vectorSource = new ol.source.Vector({
                format: new GeoJSON(),
                url: function (extent) {
                    return 'https://snap.ogs.trieste.it/geoserver/snap/ows?service=WFS&' +
                            'version=1.1.0&request=GetFeature&typename=snap:all_dataset_segy_view&' +
                            'outputFormat=application/json&srsname=EPSG:4326&' +
                            'bbox=' + extent.join(',') + ',EPSG:4326';
                },
                strategy: function (extent, resolution) {
                    if (this.resolution && this.resolution != resolution) {
                        this.loadedExtentsRtree_.clear();
                    }
                    return [extent];
                }
            });
            vectorSource.loadFeatures(extent);
            console.log(extent);
        }
    });

The control is activate via button , the activation stop main mouse navigation (pan) and the rectangle is
drawn by "left mouse down + mouse move".
The icon button is missing in the sense I'm using the GeoImageDraggingControl icon because at the moment
I don't know how to create new one (any suggestion?)
I modified UIHelpers
export function btnClickHandler(btn_id, dialog_id, dialog_selector, btn_icon_id, callback)
I add callback parameter to send the button status in order to deactivate or activate mouse navigation
I know this solution is due to my leak of knoledge about openglobus architecture.
if it is not implemented yet I hope it could be usefull , any suggestion ?
Regards,
Alessandro

Hey! I've just tried, I see console.log but nothing happens on the map. I suppose we have to see a poly or outline on the map, therefore I recommend using isClosed: true option for polyline, and just append a point to the end of the polyline, then draw Vector area, but not it's not necessary the first time.

Could you show a picture of what to see? Also, I removed all openlayers strategy code, and only console.log was left.

After selection a callback is called and into this function you implement the logic of you application using properrly the extent, for example sinply console.log, query WMS service or other ones.

I see! Cool! It works! For the beginning very cool, and could be as a view selection tool the same as ol do. For areas, polygons sounds better.
@busatoa make merge request, please!

...but not the same button for images.

@Zemledelec have you designed the image button by yourself or you are using a web icon repository?

This button @martyrion. Do you want to find a proper icon repository for buttons?

I'm using in may webapp icons by https://icons.getbootstrap.com
I could try to use an icon (I saw one which is called bbox) in selection control, if you
agree or I can wait for new icon by @martyrion (or others) in order to keep the coherent graphical design with
the rest of openglobus. what you think?

I think it's good.
I'm not sure how to make it right, but if it's possible to keep icons inside the control folder, I assume that in the future all controls would be replaced in a separate repository, such as "openglobus plugins" or something, the same as examples and sandbox.
FYI @openglobus/openglobus-team

Ok, I updated the branch,
I've add new field activationIconClasses:
activationIconClasses: ['bi', 'bi-bounding-box-circles']
if activationIconClasses is defined it shows:

otherwise I implented a simple custom icon based on "span" and its border

just not to touch the main css I preferred, for the moment, to hard set position of the button  copying the one of geo-image-dragging; this position or other aspects of button could be passed as options (implementing a library default value in case of undefined items) in order to make the application developer free to adapt it to its application design.
In order to use bootstrap-icons in the example you should include:

if it's ok I could create a pull request.

I think it's good. But, for the future we would need some HTML control layouts, the same way leaflet or ol do, and we could just add buttons in a container.
Frankly speaking, I don't like external url for icon set, I suggest placing bare svg icon code into the control html template, what do you think @busatoa?

you are right about external url because in this way the code totally depends on hope which remote server  be up and running 24H7. the better solution in production  is , via npm or direct download , to use bootstrap-icons (or other libraries) locally.

I created new pull request it failed on docs step, I followed the same steps for WMS, have you any suggestion for this?

Merged!


Scaffold GraphQL API

This PR

Adds several graphql gems: graphql, graphql-connections, graphql-batch, rubocop-graphql
Adds/app/controllers/graphql_controller.rb, /app/graphql/... type definitions (Ruby classes) and some config initializers and rake tasks
Adds gem graphiql-rails, the rails port of the GraphiQL browser tool (note the "i") for performing live queries of the API in dev mode, available at localhost:3000/graphiql
Only enables the /graphql route, the API endpoint, in development
Adds gem rack-cors so a local frontend app (not included) can access the API locally, in dev mode, from port 3001 only

The goal of this PR is to get a work-in-progress version committed...

so that graphql work doesn't keep getting out of sync with master, and
so the PRs for graphql work going forward can be smaller.

However, I don't want this to create bugs, coverage decreases or constant codeclimate annoyance for other committers. I'm very open to suggestions about how to do this PR better, fix codeclimate complaints, etc.
One thing, though, there are going to be TODOs all over the /app/graphql/ directory, for sure - I'd like to keep those! The coverage reduction is something i'd like to fix as soon as possible, however.
I need to read up on testing graphql, and maybe for example I should comment out the queries that are stubbed out but not working yet.

Coverage decreased (-5.4%) to 87.535% when pulling c4b115ac1532a213ed03dbfcea081da6b44ec372 on nimmolo:nimmo-graphql-experiments into 6e7d328133eb5938df8807611500651cc771e74e on MushroomObserver:master.

I definitely support writing tests at all stages. They can be really basic
at first: for example just run each end point and don't even bother to test
the result!  Then progressively add to the tests as you firm up behavior
and expectations.
I've got no problem with TODOs.  I never understood that cop.  It just
encourages people to remove the word "TODO"!  (Perhaps I should just speak
for myself... ;)
On Sat, Jan 29, 2022 at 4:49 AM andrew nimmo @.***>
wrote:

This PR

Adds several graphql gems: graphql, graphql-connections,
graphql-batch, rubocop-graphql
Adds/app/controllers/graphql_controller.rb, /app/graphql/... type
definitions (Ruby classes) and some config initializers and rake tasks
Adds gem graphiql-rails, the rails port of the GraphiQL browser tool
(note the "i") for performing live queries of the API in dev mode,
available at localhost:3000/graphiql
Only enables the /graphql route, the API endpoint, in development
Adds gem rack-cors so a local frontend app (not included) can access
the API locally, in dev mode, from port 3001 only

The goal of this PR is to get a work-in-progress version committed...

so that graphql work doesn't keep getting out of sync with master,
and
so the PRs for graphql work going forward can be smaller.

However, I don't want this to create bugs, coverage decreases or constant
codeclimate annoyance for other committers. I'm very open to suggestions
about how to do this PR better, fix codeclimate complaints, etc.
One thing, though, there are going to be TODOs all over the /app/graphql/
directory, for sure - I'd like to keep those! The coverage reduction is
something i'd like to fix as soon as possible, however.
I need to read up on testing
https://graphql-ruby.org/testing/schema_structure graphql
https://graphql-ruby.org/testing/integration_tests, and maybe for
example I should comment out the queries that are stubbed out but not
working yet.

Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

I'm closing this PR, and opening another one with vastly reduced scope.


feature request: support non-seekable input files

First of all, what a wonderfully-coded and -documented project!
Second: It would be awesome if non-seekable files (FIFOs for example) were able to be used as input files; this way dbfread can be used for unix-style command-line filters.
It seems like there are not too many seek statements, so hopefully this is not too difficult; if it isn't very easy/quick, I may be able to give it a try.

Thank you! :)
Reading from streams could be useful, but there are a few hurdles:

The DBF class opens and closes the file when reading the header and opens and closes it again when you iterate over records or do len(). It would have to be rewritten to work like today if you pass a filename and to keep the file open if
you pass an already open file-like object.

You could read normal records or deleted records but not both. (Only the first iteration or call to len() would do anything.) This would be inconsistent with the current behaviour.

Memo files wouldn't work.

I've already removed one seek and the one that skips to the start of the first record could be a read instead. However reading instead of skipping records could hurt performance for seekable files. (Especially in len().)

Perhaps it's best to rearrange the code and add a StreamingDBF class. This would make the code cleaner and the API less confusing.
I don't have much time to work on dbfread at the moment but feel free to have a go at it. If you do make sure you fork the develop branch.


Where is the documentation of Dart's Debug Adapter Protocol extensions?

There used to be a very informative documentation of the DAP at https://github.com/dart-lang/sdk/blob/main/pkg/dds/tool/dap/README.md it got removed as part of this commit https://github.com/dart-lang/sdk/commit/e609c8232b8f5b9b64544a146bd53f7cafeaf71a
Where can the up-to-date documentation of the Dart Debug Adapter and it's protocol extensions be found now? I searched the github org but couldn't find anything.
@DanTup

@sebthom the document got moved to here:
https://github.com/dart-lang/sdk/blob/main/third_party/pkg/dap/tool/README.md
And the Flutter-specific parts are here:
https://github.com/flutter/flutter/blob/master/packages/flutter_tools/lib/src/debug_adapters/README.md
Looks like there's a broken link in this doc pointing at the old URL so I'll send a fix. If there is anywhere else you see the old URL, please let me know so I can update.

@DanTup  Thanks a lot!


[step prop] reason for default value

What is the reasoning behind the default value for the step property being 0?
In my opinion this is semantically incorrect, as it suggests a slider that cannot be moved at all. Also, this property being optional, it passes a potentially incorrect value to the native platforms.
Case in point, passing 0 as the step value to the Windows native Slider causes a crash.
I suggest either making this property required, or changing the default value to 0.1 or 1. I can make the change in my upcoming PR adding Windows support for this control.

Hello @rectified95,
Please add pr with the fix for Windows, we also could set default value for step. I do not want to make this a breaking chage

We have default step for windows which is 1% of range


Added comment counter

Implemented each counter as a separate module.
Implemented counter function to cover all the edge cases you can think about.
Used correct javascript practice

hi @Izebiafe I like your code. good job implementing the features.


Eth66 protocol should only apply to the Eth protocol

Signed-off-by: Jason Frame<EMAIL_ADDRESS>

PR description
Besu using the instanbul/99 or instanbul/100 incorrectly encodes messages with a requestId from eth66.
Fixed Issue(s)

Fixes #2682
Changelog

[ ] I thought about the changelog and included a changelog update if required.

I think we should also remove Capability.compareTo as it was only created for this comparison.
I agree that doing this comparison in the client code is better: it's more explicit than the compareTo, which assumes you would know comparing Capabilities means comparing versions of the same Capability.


Package gone from AUR

This package is no longer available on AUR - is this intentional? Without it, there seems to be no way of making shared folders work on ArchLinux.
I currently maintain a relatively popular Vagrant box with support for VirtualBox, Parallels and VMWare, but I cannot make new releases without shared folder support. :(
If you could publish this package to AUR again or help me find another alternative for shared folders support I would be very grateful.
Thanks!

When AUR was migrated from AUR3 to AUR4 then all old packages were removed and I didn't add it.
Anyway now I fixed it for linux 4.1 and pushed to AUR, but I don't use it anymore and I probably won't update it if it breaks because I don't have time for that, especially as I don't use it.
I recommend using CIFS (Samba) or NFS because VMware doesn't support newer kernels and we've to manually update patches whenever something is changed in newer kernel.

Latest open-vm-tools upstream release ships a fuse implementation of vmhgfs.

I wonder why the vmhgfs-fuse module requires kernel >= 4.0


[PROPOSAL] API Endpoints for Managing Projects

In this repo, we still have few endpoints. I think it is better if we have endpoints for managing projects.
GET api/v1/projects (project listing)
POST api/v1/projects (create new project)
GET api/v1/projects/{id} (single project)
PATCH api/v1/projects/{id} (update a project)
DELETE api/v1/projects/{id} (delete a project)

Need this API features created with feature tests in tests/Feature/Api/ApiManageProjectsTest.

I think would be better to use PUT instead of PATCH, patch mean, you want to changes some record

So, PUT request is better choice for updating a record? even it just for some column, @ad3n?

The ref: https://williamdurand.fr/2014/02/14/please-do-not-patch-like-an-idiot/


Dubbo Random port conflict

[x] I have searched the issues of this repository and believe that this is not a duplicate.
[x] I have checked the FAQ of this repository and believe that this is not a duplicate.

Environment

Dubbo version: 2.7.8
Operating System version: win10 2004
Java version: OracleJDK-8u241

Steps to reproduce this issue

Generate a new dubbo project ,and  2+ dubbo modules at least to start
The dubbo port configuration for both modules is as follows:

dubbo:
  protocol:
    name: dubbo
    port: -1

Start both modules at the same time on the same host

Expected Result
Two dubbo modules start normally and use two different random ports
Actual Result
One dubbo modules start normally and another not. Because they use the same dubbo protocol port.
If there is an exception, please attach the exception trace:
2020-09-09 10:42:23.414 WARN 17632 [main] o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is org.apache.dubbo.rpc.RpcException: Fail to start server(url: dubbo://<IP_ADDRESS>:20880/com.alibaba.cloud.dubbo.service.DubboMetadataService?anyhost=true&application=dubbo-sample-consumer&bind.ip=<IP_ADDRESS>&bind.port=20880&channel.readonly.sent=true&codec=dubbo&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&group=dubbo-sample-consumer&heartbeat=60000&interface=com.alibaba.cloud.dubbo.service.DubboMetadataService&methods=getAllServiceKeys,getServiceRestMetadata,getExportedURLs,getAllExportedURLs&pid=17632&qos.enable=false&release=2.7.8&retries=-1&revision=2.2.1.RELEASE&side=provider&timeout=40000&timestamp=1599619340513&version=1.0.0) Failed to bind NettyServer on /<IP_ADDRESS>:20880, cause: Address already in use: bind

... ...

2020-09-09 10:42:48.024 ERROR 17632 [Nacso-Watch-Task-Scheduler-1] o.s.s.support.TaskUtils$LoggingErrorHandler Unexpected error occurred in scheduled task

java.lang.IllegalStateException: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@11841b15 has not been refreshed yet
	at org.springframework.context.support.AbstractApplicationContext.assertBeanFactoryActive(AbstractApplicationContext.java:1096) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1108) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]
	at org.springframework.context.event.ApplicationListenerMethodAdapter.getTargetBean(ApplicationListenerMethodAdapter.java:332) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]
	at org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:297) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]
	at org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:190) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]
	at org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:153) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:404) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:361) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]
	at com.alibaba.cloud.nacos.discovery.NacosWatch.nacosServicesWatch(NacosWatch.java:130) ~[spring-cloud-starter-alibaba-nacos-discovery-2.2.1.RELEASE.jar:2.2.1.RELEASE]
	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_241]
	at java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308) [na:1.8.0_241]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java) [na:1.8.0_241]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_241]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [na:1.8.0_241]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_241]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_241]
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_241]

Before port being exposed, there are many steps ,like Configuration validation, Serialization initialization, Protocol initialization and so on, after random port fetch. This will cause more than one provider fetch the same port because the port is not occupied.
If you want to start more than one provider at one time, it is more recommend to specify specific port for each provider.

In the production environment, is there a scenario where ports are randomly assigned?

In the production environment, is there a scenario where ports are randomly assigned?

Thanks! Even if you configure a fixed port, it is possible to deploy multiple instances on one machine，then "Address already in use: bind" is s bound to occur.
I do configure dubbo protocol port to be random because I wonder if it is possible to completely ignore the concerns about port configuration.

Before port being exposed, there are many steps ,like Configuration validation, Serialization initialization, Protocol initialization and so on, after random port fetch. This will cause more than one provider fetch the same port because the port is not occupied.
If you want to start more than one provider at one time, it is more recommend to specify specific port for each provider.

Thanks!  Is it possible that we completely ignore the concerns about dubbo protocol port configuration when we use dubbo

Be flexible, start one by one or specify the ports.

Large port may be used some connections
But in your code , I think you may be restart at least 2 app.
The code cannot promise you  .
Image this, app 1 finds  port 20880 not use and then app2 find sport 20880 not use too.
So  app 1 starts fast and then app2 must failed to start.
I can say dubbo may improve code to find a random port. and not release this port .
So docker or k8s may be the port solution


Machine readable precondition failure information

Currently when a precondition fails I see a GRPC response with FAILED_PRECONDITION, received into my application as a io.grpc.StatusRuntimeException:
Caused by: io.grpc.StatusRuntimeException: FAILED_PRECONDITION: failed precondition: relation/permission `foo` not found under definition `site`

On my project we'd like to be able to use machine readable data to synthesize higher level (schema-aware) error messages on our output, without parsing the GRPC Description string returned by StatusRuntimeException.getDescription(). We were wondering if the metadata key/value pairs could be used to parameterize the response with a precondition type, and the specific parameters to the precondition that failed. In the above we'd want to know that the precondition type was checking for the existence of a relation/permission, that the parameter for the check was "foo" and the definition it was expected in was "site". Maybe something like the following:
precondition_type: RELATION_EXISTENCE
relation_permission_id: foo
object_definition: site

This level of request and response would likely be easy to implement, but the current errors do not appear (and I might be mistaken on this) to be able to always unambiguously indicate which precondition failed in the case that multiple preconditions have been sent, or multiple sent and internal preconditions fail, possibly referring to the same definitions, objects,  subjects, etc. So part of this request might involve enhancing internal error propagation to enable the returned metadata to always indicate, in a machine-readable way, exactly which instance of a precondition failed.

@john-conti Definitely doable.
Most errors raised within SpiceDB are well-typed. For example: https://github.com/authzed/spicedb/blob/main/internal/dispatch/graph/errors.go. There are some that are not, but it would be fairly straightforward to add the remainder.
Then the error converters would be modified to include the metadata. Example: https://github.com/authzed/spicedb/blob/main/internal/services/v1/relationships.go#L358

This is fantastic. Looking forward to a test spin soon. 🚀


Max-width limits the card to expand

Browser

[X] Chrome/Chromium
[ ] Firefox
[ ] Safari
[X] Edge
[ ] iOS Safari
[ ] Opera
[ ] Other/not relevant

Operating system

[X] Windows
[ ] Linux
[ ] macOS
[ ] ChromeOS
[ ] iOS
[X] Android
[ ] Other/not relevant

Description
Initially, the "Style as you please" card' elements looks a uncentered. A small tweak can be made for it to fix.
Suggestion how to fix
The max-width made the card's element limits its width. Removing the max-width using @media rule when the screen width is below 640px solves the problem.
See the developer console as the max-width is present:
BEFORE:

AFTER:

Steps to reproduce

Open Lucide site in any browser.
If in PC, minimize the browser's width until the site looks like in phone.
Scroll until section "Style as you please".
Look how the elements arranged.

Checklist

[X] I have searched if someone has submitted a similar issue before and there weren't any. (Please make sure to also search closed issues, as this issue might already have been resolved.)

Perhaps this solution will help you figure out the problem click


Lines drawn have weird symbology

I'm trying to configure an expedition planning tool for Fiji which includes a sketch class for drawing lines (routes). When I complete the drawing, the symbology appears something like a closed polygon, not a line.

Lines aren't super well supported right now. I'll see if I can make a quick fix for the symbology.


npm install error with package "jss"

@dubert any news on this?

@santihbc hey, I was out yesterday, looking into it now. Seems like a problem with JSS. I'll post an update.

@santihbc fixed in 0.2.2
I'm planning a rewrite in ES6, which should significantly slim down the package, and add some new features :)


Fix incorrect comparison function for public keys

Also adds/improves doc comments on related functions, and adds tests of
comparisons RSA keys and ECDSA keys. these tests failed as expected
before the function was changed, e.g.:
Executing tests from //pkg/util/pki:go_default_test
---------------------------------------------------
--- FAIL: TestPublicKeysEqualECDSA (0.00s)
  generate_test.go:492: got an incorrect match from different curves:
    pub1 type: "P-256"
    pub2 type: "P-521"
--- FAIL: TestPublicKeysEqualRSA (0.00s)
  generate_test.go:560: got an incorrect match from different RSA keys:
    pub1: &rsa.PublicKey{N:2293...<snip>...8869, E:65537}
    pub2: &rsa.PublicKey{N:2293...<snip>...8869, E:3}

Note for reviewer: This also changes PublicKeyMatchesCertificate, which previously re-implemented the public key matching logic. It now just calls PublicKeysEqual
- Fix incorrect `PublicKeysEqual` comparison function for public keys and improve doc comments on related functions

/kind bug
/priority important-soon

/lgtm

/test pull-cert-manager-deps


fix QueryInterface::count return type

| Is bugfix?    | ✔
| New feature?  | ❌
| Breaks BC?    | ❌
| Fixed issues  | 18708

Thank you.


Update discord.js and improve README

I just set this up for my server. I couldn't get it to work without updating Discord.js which was quite out of date and I think the API has changed.
I also improved the README slightly but I was struggling figuring out how to set this up as I wasn't familiar with Discord tokens, apps and all that jazz.
Hope this helps, thanks for writing this!

I see, yeah its been a while since I last updated it..
I'll do some testing on my own server and merge this if it checks out.

Seems to work even though Travis doesn't like to build Discord, merging. Thanks for the contribution.


[android][test] Mark sil_combine_alloc_stack as executable.

The Android CI machines cannot execute the test in the target devices. Marking the test as executable makes the test filtering know that this test needs to be executed in the target device.
Seen first in https://ci-external.swift.org/job/oss-swift-RA-linux-ubuntu-16.04-android/5385/ and https://ci-external.swift.org/job/oss-swift-RA-linux-ubuntu-16.04-android-arm64/3685/.

@swift-ci please smoke test and merge

@swift-ci please smoke test and merge

I still think the failures in SwiftPM are unrelated.
@swift-ci please smoke test Linux platform


Adding Jobrun CRD and e2e tests

Issue #, if available: https://github.com/aws-controllers-k8s/community/issues/1267
Description of changes: adding jobrun crd and e2e testing.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/retest

/retest

/lgtm

/lgtm


Lookup the provided plugins on the options, throw for invalid arguments.

What kind of change does this PR introduce?
Schema validation for options.plugins.
Ensure apply method is available on the plugin.
Fixes #6003
Fixes #2217

Did you add tests for your changes?
Yes

If relevant, link to documentation update:

Summary
"Hard to debug TypeError: arguments[i].apply is not a function "

Does this PR introduce a breaking change?
no

Other information

Yep no problem, where do you put the tests for options @sokra ? i couldn't see from quick look.

Could you check if it's possible to add these checks into the schema?
https://github.com/webpack/webpack/blob/7bbf31e8f488524e4bdd051b2a7d569560bb3ec1/schemas/webpackOptionsSchema.json#L601-L604
tests would be in test\Validation.test.js then.

Any action point on this regarding webpack 4 milestone: Do i need to rebase changes on next branch and change target from master?

Thanks

👍


How would I go about converting this to HDRP?

Hello! I'm trying to make a shader similar to this on HDRP, I already have a WIP of that, but I'm also struggling there.
Would this be possible to be translated to HDRP or does it use URP-Specific features?

Sorry, I'm not familiar with HDRP shaders so wouldn't know how difficult it would be to translate it. Geometry shaders also aren't the most performant things from what I understand so I think they tend to be avoided. I know I've also seen GPU instanced grass approaches too, (e.g. using Graphics.DrawMeshInstancedIndirect though I'm not familiar with the exact setup).
Also while searching for HDRP specifically, I saw that there's a grass example here for Visual Effect Graph (sample #04) which might be useful : https://blogs.unity3d.com/2019/03/06/visual-effect-graph-samples/

Interesting! I was thinking of using the visual effect graph solution as well but wanted to keep it shader-based so I could use it more procedurally.
Anyhow, I'll keep looking around for solutions on a shader level, at any rate, thanks for answering :D


grpc-gw request is non-deterministic

Summary of Bug
The odd thing is that GetBlockByHash often fails with a Not Implemented error when requested as REST. There is no problem with gRPC. There seems to be a bug in grpc-gw as it often fails. (ref. #699)
Even I didn't change any code about LatestValidatorSet, it failed at #699 's latest commit
--- FAIL: TestIntegrationTestSuite (16.96s)
    service_test.go:31: setting up integration test suite
    network.go:174: acquiring test network lock
    network.go:179: created temporary directory: /tmp/TestIntegrationTestSuite2939229296/001/chain-eUzfDc3018637995
    network.go:188: preparing test network...
    network.go:382: starting test network...
    network.go:387: started test network
    --- FAIL: TestIntegrationTestSuite/TestLatestValidatorSet_GRPC (0.00s)
        --- FAIL: TestIntegrationTestSuite/TestLatestValidatorSet_GRPC/no_pagination (0.00s)
            service_test.go:199:
                	Error Trace:	/home/runner/work/lbm-sdk/lbm-sdk/client/grpc/tmservice/service_test.go:199
                	            				/home/runner/work/lbm-sdk/lbm-sdk/client/grpc/tmservice/suite.go:91
                	Error:      	Received unexpected error:
                	            	rpc error: code = InvalidArgument desc = could not find voter params for height #16: invalid request
                	Test:       	TestIntegrationTestSuite/TestLatestValidatorSet_GRPC/no_pagination
        --- FAIL: TestIntegrationTestSuite/TestLatestValidatorSet_GRPC/with_pagination (0.00s)
            service_test.go:199:
                	Error Trace:	/home/runner/work/lbm-sdk/lbm-sdk/client/grpc/tmservice/service_test.go:199
                	            				/home/runner/work/lbm-sdk/lbm-sdk/client/grpc/tmservice/suite.go:91
                	Error:      	Received unexpected error:
                	            	rpc error: code = InvalidArgument desc = could not find voter params for height #16: invalid request
                	Test:       	TestIntegrationTestSuite/TestLatestValidatorSet_GRPC/with_pagination
    --- FAIL: TestIntegrationTestSuite/TestLatestValidatorSet_GRPCGateway (0.02s)
        --- FAIL: TestIntegrationTestSuite/TestLatestValidatorSet_GRPCGateway/no_pagination (0.00s)
            service_test.go:232:
                	Error Trace:	/home/runner/work/lbm-sdk/lbm-sdk/client/grpc/tmservice/service_test.go:232
                	            				/home/runner/work/lbm-sdk/lbm-sdk/client/grpc/tmservice/suite.go:91
                	Error:      	Received unexpected error:
                	            	unknown field "code" in tmservice.GetLatestValidatorSetResponse
                	Test:       	TestIntegrationTestSuite/TestLatestValidatorSet_GRPCGateway/no_pagination
        --- FAIL: TestIntegrationTestSuite/TestLatestValidatorSet_GRPCGateway/with_pagination (0.01s)
            service_test.go:232:
                	Error Trace:	/home/runner/work/lbm-sdk/lbm-sdk/client/grpc/tmservice/service_test.go:232
                	            				/home/runner/work/lbm-sdk/lbm-sdk/client/grpc/tmservice/suite.go:91
                	Error:      	Received unexpected error:
                	            	unknown field "code" in tmservice.GetLatestValidatorSetResponse
                	Test:       	TestIntegrationTestSuite/TestLatestValidatorSet_GRPCGateway/with_pagination
    service_test.go:48: tearing down integration test suite
    network.go:512: cleaning up test network...
    network.go:535: finished cleaning up test network
    network.go:509: released test network lock
FAIL
FAIL	github.com/line/lbm-sdk/client/grpc/tmservice	17.755s

Currently, it seems that the issue has not been found because gRPC is mainly used, but similar issues may occur in other endpoints, so it needs to be tracked in the future.
Version
c8314f702774aa12daa468d631a1fd048c043217
Steps to Reproduce

For Admin Use

[x] Not duplicate issue
[x] Appropriate labels applied
[ ] Appropriate contributors tagged
[ ] Contributor assigned/self-assigned

The error action is https://github.com/line/lbm-sdk/actions/runs/3206232949/jobs/5239736676

I found it again.

https://github.com/line/lbm-sdk/actions/runs/3239719309/jobs/5309449199

--- FAIL: TestIntegrationTestSuite (16.91s)
    service_test.go:32: setting up integration test suite
    network.go:174: acquiring test network lock
    network.go:179: created temporary directory: /tmp/TestIntegrationTestSuite2125720976/001/chain-YFc4QI3772383345
    network.go:188: preparing test network...
    network.go:382: starting test network...
    network.go:387: started test network
    --- FAIL: TestIntegrationTestSuite/TestQueryLatestValidatorSet (0.02s)
        service_test.go:172:
            	Error Trace:	/home/runner/work/lbm-sdk/lbm-sdk/client/grpc/tmservice/service_test.go:172
            	Error:      	Received unexpected error:
            	            	unknown field "code" in tmservice.GetLatestValidatorSetResponse
            	Test:       	TestIntegrationTestSuite/TestQueryLatestValidatorSet
    service_test.go:49: tearing down integration test suite
    network.go:512: cleaning up test network...
    network.go:535: finished cleaning up test network
    network.go:509: released test network lock
FAIL
FAIL	github.com/line/lbm-sdk/client/grpc/tmservice	17.604s

Ostracon's process of storing(save and Bootstrap) this Block-related information has no locks. So calling RPC Validators during the save process will return error depending on the timing.

save: https://github.com/line/ostracon/blob/2d44f5d64072fbdecbbda07dfc2ba6c2bfa4c8bd/state/store.go#L171-L208
Bootstrap: https://github.com/line/ostracon/blob/2d44f5d64072fbdecbbda07dfc2ba6c2bfa4c8bd/state/store.go#L211-L238
Validators: https://github.com/line/ostracon/blob/2d44f5d64072fbdecbbda07dfc2ba6c2bfa4c8bd/rpc/core/consensus.go#L26

LoadVoters: https://github.com/line/ostracon/blob/2d44f5d64072fbdecbbda07dfc2ba6c2bfa4c8bd/state/store.go#L490-L544

The root cause is in https://github.com/line/ostracon/pull/478

Validators of RPC depend on LoadVoters
But,

Save the state with the committed height on Ostracon

Validators
LastProofHash
LastVotersParams

Save the state with the uncommitted height on Ostracon

NextValidators

Then getting Validators via RPC:

Can get it with the committed height
Make an error if getting with the uncommitted height


Design API

Write documentation on swagger for the first version of the API

This is the initial design, changes might be needed.
For example, the book endpoint, we might lose it since we have openlibrary, or we could use it in case openlibrary doesn't have the information we require.


phone_device table isn't created when using --nomigrations

I have a 2.2 Django project with django-otp==0.8.0, django-two-factor-auth[phonenumbers]==1.14.0, and an app two_factor_auth that makes use of these two libraries.
When tests are run with migrations, they pass:
$ ./manage.py test two_factor_auth
  Applying two_factor.0001_initial... OK
  Applying two_factor.0002_auto_20150110_0810... OK
  Applying two_factor.0003_auto_20150817_1733... OK
  Applying two_factor.0004_auto_20160205_1827... OK
  Applying two_factor.0005_auto_20160224_0450... OK
  Applying two_factor.0006_phonedevice_key_default... OK
  Applying two_factor.0007_auto_20201201_1019... OK
----------------------------------------------------------------------
Ran 13 tests in 5.549s

OK

The migrations that are run are the ones from here: https://github.com/jazzband/django-two-factor-auth/tree/master/two_factor/migrations
But when we run tests without migrations, the tests fail:
$ ./manage.py test two_factor_auth --nomigrations
django.db.utils.OperationalError: no such table: two_factor_phonedevice

I went back through our commit history and can confirm this issue started appearing when we upgraded from django-otp==0.7.5 and django-two-factor-auth==1.9.1.
Expected Behavior
We would expect running $ ./manage.py test two_factor_auth --nomigrations to also have all tests pass.
Current Behavior
When tests are run without migrations (as is done in CI and local environments because our project has hundreds of migrations), they fail.
$ ./manage.py test two_factor_auth --nomigrations

Traceback (most recent call last):
  File "/opt/miniconda3/lib/python3.8/site-packages/two_factor/views/profile.py", line 38, in get_context_data
    'default_device': default_device(self.request.user),
  File "/opt/miniconda3/lib/python3.8/site-packages/two_factor/utils.py", line 16, in default_device
    for device in devices_for_user(user):
  File "/opt/miniconda3/lib/python3.8/site-packages/django_otp/__init__.py", line 80, in devices_for_user
    for device in model.objects.devices_for_user(user, confirmed=confirmed):
  File "/opt/miniconda3/lib/python3.8/site-packages/django/db/models/query.py", line 274, in __iter__
    self._fetch_all()
  ...
  File "/opt/miniconda3/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py", line 383, in execute
    return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: two_factor_phonedevice

Your Environment

Python version: 3.8
Django version: 2.2
django-otp version: 0.8.0
django-two-factor-auth version: 1.14.0

Can you also provide your INSTALLED_APPS setting, please?

Sure thing:
INSTALLED_APPS = (
"corsheaders",
"anymail",
"django_extensions",
"django_nose",
"django.contrib.contenttypes",
"django.contrib.auth",
"django.contrib.sites",
"grappelli",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"graphene_django",
"django.contrib.admin",
"django.contrib.humanize",
"magic",
"raven.contrib.django.raven_compat",
"django_celery_beat",
"absolute",
"guardian",
"rest_framework",
"rest_framework.authtoken",
"rest_framework_swagger",
"markdown_deux",
"nested_admin",
"auditlog",
"hijack",
"compat",
"hijack_admin",
"django_otp",
"django_otp.plugins.otp_static",
"django_otp.plugins.otp_totp",
"two_factor",
"two_factor_auth",
"two_factor.plugins.phonenumber",
)

Where is the implementation of --nomigrations?

Ah, it appears we prepend test_without_migrations to INSTALLED_APPS (so it ends up as the first element) when the project is run in CI/local environments.

I've tried changing where test_without_migrations appears in INSTALLED_APPS, but it hasn't made a difference. I did find a potential solution where we could disable migrations for all apps except two_factor with the following:
class NoMigrations:
    """Disable migrations for all apps except two_factor"""
    def __getitem__(self, item):
        return None

    def __contains__(self, item):
        return item != "two_factor"

MIGRATION_MODULES = NoMigrations()

This would also allow us to remove django-test-without-migrations from our dependencies.

This issue is probably due to the fact we didn't move migration files when we moved the phone capability into the plugins folder. I feared to break existing installations. However it might be doable if done with care, to be tried...

I am having the same issue without django-test-without-migrations librart. My project uses MIGRATE=False option built into Django: https://docs.djangoproject.com/en/3.2/ref/settings/#migrate
Tests fail with this setting.
Models can be moved between apps. A special migration is needed: https://realpython.com/move-django-model/#the-short-way-reference-the-new-django-model-to-the-old-table
I've executed this successfully in the past.

Was fixed by #527


Error for starting to train

train.py: error: unrecognized arguments: --lr 5e-4
I've done everything as said in the description but this Error happens.
I'm running Ubuntu 20.0.4
2080ti

I removed the "--lr 5e-4'' argument from the input, it works but it doesn't use the GPU, it says on the options: device: CPU


♪ EditiooOoOOnnN ! ♫

👋
The 2021 edition will become stable when 1.56 is released, on the 21st of october, and this draft PR prepares the playground to using it as the default edition after its release.
Specifically, I've:

Set 2021 as the default in the UI.
Removed the aside when setting the 2021 edition, as it will be available everywhere then.

I'm opening this PR as draft:

I couldn't really test the server side, and would like CI to run tests for me.
I wanted to ask for advice from Jake, in case I've forgotten other important steps and so on.
this PR should probably only be merged in a month when 1.56 is released.

♪ Edition! ♫

One thing I think we should also add is a notification popup to let people know that 2021 is live and the default.
We should:

Remove the old notification
Add a notification for 2021

I don't have a great idea for the notification text or silence date, though.

Yes, indeed, good point about the notification. You had added one last time, for the 2018 edition, so I've used the same template. That one had a silence date of 01/01/2019.
Thanks for triggering CI as well, the integration tests should start passing on 1.56 IIUC.

Could you submit remove special case for cargo "edition2021" feature as a separate PR? That should be able to be merged before the next Rust release.

Sure, done in https://github.com/integer32llc/rust-playground/pull/743.

FWIW, I locally renamed beta to stable and ran the tests. I fixed up the failures and force pushed this branch.

Thanks @shepmaster 🙏

🚀

If GitHub ever lets the images be pushed…


Provide user understandable error message for OpenAPI validation failure

Feature Request
Is your feature request related to a problem? Please describe.
Currently, when my Custom Resource fails OpenAPI validation, I receive a big dump of the whole CR with the error message mixed in between.
When using UI to create this resource, user gets this hard to decode dump on the screen.
This message should be user understandable and not break UI/UX.
(Same applies for CLI way of creating CRs.)
I was suggested to use Response spec of OpenAPI. But, I do not see any annotation that can generate this spec for me. If I do it manually, this will be removed next time when I do operator-sdk generate openapi
Describe the solution you'd like
Annotation or some other way needs to be added to provide user understandable error messages when OpenAPI validations fail.
For e.g When we request for Negative size PVC, Kubernetes provides a well formated error message saying "negative values are not allowed for PVC requests" instead of throwing the entire PVC manifest back to the user.

If someone could point to an exisiting feature similar to this, I'd be happy to close this.
(Assuming operator-sdk is the right place to take care of this.)

Hi @umangachapagain,
Could you please add here the following information for we are able to help you better with ?

An error msg example of an attribute in a CR that would like to have a customized msg
The code implementation that you have in the *_type.go for this attribute with its annotations

Code implementation in *_types.go ,
https://github.com/openshift/ocs-operator/blob/bed1df0ab1659a831ff984938087a3de80e1ac0b/pkg/apis/ocs/v1/storagecluster_types.go#L31-L32
type StorageDeviceSet struct {
	Name string `json:"name"`
	// +kubebuilder:validation:Minimum=1
	Count           int                          `json:"count"`
	Resources       corev1.ResourceRequirements  `json:"resources"`
	Placement       rookalpha.Placement          `json:"placement"`
	Config          StorageDeviceSetConfig       `json:"config,omitempty"`
	DataPVCTemplate corev1.PersistentVolumeClaim `json:"dataPVCTemplate"`
	Portable        bool                         `json:"portable"`
}

CRD part of code where validation is generated,
https://github.com/openshift/ocs-operator/blob/bed1df0ab1659a831ff984938087a3de80e1ac0b/deploy/crds/ocs_v1_storagecluster_crd.yaml#L51-L54
            storageDeviceSets:
              items:
                properties:
                  config:
                    type: object
                  count:
                    format: int64
                    minimum: 1
                    type: integer

Error message that is received,
Error "Invalid value: map[string]interface {}{"apiVersion":"ocs.openshift.io/v1", "kind":"StorageCluster", "metadata":map[string]interface {}{"creationTimestamp":"2019-09-19T10:47:22Z", "generation":2, "name":"ocs-storagecluster", "namespace":"openshift-storage", "resourceVersion":"35229", "uid":"dc12e08e-daca-11e9-8a28-0a6bf9652cfe"}, "spec":map[string]interface {}{"managedNodes":false, "storageDeviceSets":[]interface {}{map[string]interface {}{"count":4.5, "dataPVCTemplate":map[string]interface {}{"spec":map[string]interface {}{"accessModes":[]interface {}{"ReadWriteOnce"}, "resources":map[string]interface {}{"requests":map[string]interface {}{"storage":"1Ti"}}, "storageClassName":"gp2", "volumeMode":"Block"}}, "name":"ocs-deviceset", "placement":map[string]interface {}{}, "portable":true, "resources":map[string]interface {}{}}}}, "status":map[string]interface {}{"conditions":[]interface {}{map[string]interface {}{"lastHeartbeatTime":"2019-09-19T11:07:41Z", "lastTransitionTime":"2019-09-19T10:47:22Z", "message":"Reconcile completed successfully", "reason":"ReconcileCompleted", "status":"True", "type":"ReconcileComplete"}, map[string]interface {}{"lastHeartbeatTime":"2019-09-19T11:07:41Z", "lastTransitionTime":"2019-09-19T10:52:32Z", "message":"Reconcile completed successfully", "reason":"ReconcileCompleted", "status":"True", "type":"Available"}, map[string]interface {}{"lastHeartbeatTime":"2019-09-19T11:07:41Z", "lastTransitionTime":"2019-09-19T10:52:32Z", "message":"Reconcile completed successfully", "reason":"ReconcileCompleted", "status":"False", "type":"Progressing"}, map[string]interface {}{"lastHeartbeatTime":"2019-09-19T11:07:41Z", "lastTransitionTime":"2019-09-19T10:47:22Z", "message":"Reconcile completed successfully", "reason":"ReconcileCompleted", "status":"False", "type":"Degraded"}, map[string]interface {}{"lastHeartbeatTime":"2019-09-19T11:07:41Z", "lastTransitionTime":"2019-09-19T10:52:32Z", "message":"Reconcile completed successfully", "reason":"ReconcileCompleted", "status":"True", "type":"Upgradeable"}}, "phase":"Ready", "relatedObjects":[]interface {}{map[string]interface {}{"apiVersion":"ceph.rook.io/v1", "kind":"CephCluster", "name":"ocs-storagecluster", "namespace":"openshift-storage", "resourceVersion":"35227", "uid":"dc204f45-daca-11e9-95c3-06f006ddaeb0"}}}}: validation failure list: spec.storageDeviceSets.count in body must be of type int64: "float64"" for field "[]"

Error message that I expect,
Error "Invalid value: spec.storageDeviceSets.count in body must be of type int64"

Some metadata (Kind, Name and Version) would be good to have but having entire CR dump inside map[string]interface is not very useful.
Also, I have noticed that even though validation says minimum: 1, 0 value is accepted and no error is returned. Where do I raise this bug?

Hi @umangachapagain,
The error added here shows be from the operator logs and has no relation with the validation. For you check the validation error it will be output in your shell when the CR be applied and not get from the operator.  So, could you please try to add an invalid value for this field in your CR and then apply it and check its output?

If you check the log added by you it shows came from the operator logs and not from the output when the CR is applied because of this it has more information and not just the validation error.

We do not have a custom client generated to handle CRUD operations and seems to be using default behavior what operator-framework provides. Do you think that could be an issue?
On the operator side we don't do anything to send a response back to user.
I am investigating use of client-gen to fix this. If it works, i will update (probably close) this issue.

In this way, could you do the following checks?
Could you check the validation error output in the shell when the CR is applied?

Shell also gives the same error.

Could you try to add a description in the field and check if it will change the output?

It adds description field to crd. Nothing related to validation.

Also, could you clarify what UI/UX it is breaking? Are you using OLM?

Yes, we are using OLM. But, for OCS we have custom components.
Displaying such big dump on small card sized components causes overflow issue and real error message is invisible.

Hi @umangachapagain,
The validation is made by k8s API which is using OpenAPI.  Note that the error msg is returned by the API which is the CR schema + validation failure list: + [] output of errors.
Following an example of the error output.
spec.databaseCRName in body should be at most 3 chars long
For further information see here the k8s documentation over the CRD API and how the schemas validations work. All valid properties can be found here.
I'd like to suggest you open an issue against the Kubernetes repos requesting it as a feature since  I could not find a property in the schema which would allow you customize the error messages as you wish. May this one https://github.com/kubernetes/kube-openapi would be a good place for it.
Regards de UI (OLM):
You can use annotations to customise the UI as the following example.
	// Name of the Database CR applied which this backup will work with
	// Default Value: "database"
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
	// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Name of Database CR"
	DatabaseCRName string `json:"databaseCRName,omitempty"`

However, note that this data needs to be generated in the CSV for it be to reflect. See here.
NOTE:

You can try to use the PR to help generate the CSV since it is not yet added on the tool.

Please, let me know if the above information answers your question and if you agree in close this one.


Wrong positioning of the scrubbar when CartoDB logo is not present

When there is not logo there, we should gain some space by moving the scrubbar a little bit to the bottom, right?

There has been no activity on this issue for several months and that's why are closing it (automatically). If you think this still needs to be addressed please reopen it. The good news is that we are now working on the next version of CARTO.js, stay tuned.


template (generic function) problem with goog.events.listen

With new type inference --new_type_inf I'm unable to compile calls to goog.events.listen without several warnings.  (I've reported some of these already, see #833 and #832).  Here is another that is mysterious to me:
src/lab/app/SimController.js:257: WARNING - Could not instantiate type T|undefined with myphysicslab.lab.app.SimController.
      /*capture=*/false, /*scope=*/this);
                                   ^

It occurs in this constructor:
/**
* @param {!myphysicslab.lab.view.LabCanvas} labCanvas  the {LabCanvas} to process events for.
* @param {myphysicslab.lab.app.EventHandler=} eventHandler  the {EventHandler}
*    to forward events to, or null or undefined to just do View panning.
* @param {myphysicslab.lab.app.SimController.modifierKey=} panModifier  which modifier
*    keys are needed for View panning;  if null, then View panning will not be done;
*    if undefined then default is to pan the View with alt key down.
* @constructor
*/
myphysicslab.lab.app.SimController=function(labCanvas, eventHandler, panModifier) {
  // code omitted...

  /**  key used for removing the listener.  Only process mousedown events that occur on
  * LabCanvas, to prevent eating events needed by other elements.
  * @type {goog.events.Key}
  * @private
  */
  this.mouseDownKey_ = goog.events.listen(labCanvas.getCanvas(),
      goog.events.EventType.MOUSEDOWN, /*callback=*/this.mouseDown,
      /*capture=*/false, /*scope=*/this);

  // code omitted...
};

compiler version:
Closure Compiler (http://github.com/google/closure-compiler)
Version: v20150126-82-g85da5b6
Built on: 2015/02/11 20:55

Adding on to the above, there is another warning on that same goog.events.listen call which I think is also related to templates (generic functions).
src/lab/app/SimController.js:256: WARNING - Invalid type for parameter 3 of function goog.events.listen.
expected : function(?):?|{handleEvent:function(?):?}|null
found    : function(this:myphysicslab.lab.app.SimController,goog.events.BrowserEvent):?

      goog.events.EventType.MOUSEDOWN, /*callback=*/this.mouseDown,
                                                    ^

Here is the code for the mouseDown method in that class:
/**  Callback for mouseDown event.
@param {!BrowserEvent} evt
*/
SimController.prototype.mouseDown = function(evt) {
  this.doMouseDown(evt, evt.clientX, evt.clientY);
};

That callback (or listener) argument to goog.events.listen also involves template arguments:
/**
 * Adds an event listener for a specific event on a native event
 * target (such as a DOM element) or an object that has implemented
 * {@link goog.events.Listenable}. A listener can only be added once
 * to an object and if it is added again the key for the listener is
 * returned. Note that if the existing listener is a one-off listener
 * (registered via listenOnce), it will no longer be a one-off
 * listener after a call to listen().
 *
 * @param {EventTarget|goog.events.Listenable} src The node to listen
 *     to events on.
 * @param {string|Array<string>|
 *     !goog.events.EventId<EVENTOBJ>|!Array<!goog.events.EventId<EVENTOBJ>>}
 *     type Event type or array of event types.
 * @param {function(this:T, EVENTOBJ):?|{handleEvent:function(?):?}|null}
 *     listener Callback method, or an object with a handleEvent function.
 *     WARNING: passing an Object is now softly deprecated.
 * @param {boolean=} opt_capt Whether to fire in capture phase (defaults to
 *     false).
 * @param {T=} opt_handler Element in whose scope to call the listener.
 * @return {goog.events.Key} Unique key for the listener.
 * @template T,EVENTOBJ
 */
goog.events.listen = function(src, type, listener, opt_capt, opt_handler) {

As with #833 this goog.events.listen call is also having an error with the second argument which is another template argument.  For completeness, here are all the errors I'm getting on that goog.events.listen call:
src/lab/app/SimController.js:255: WARNING - Invalid type for parameter 1 of function goog.events.listen.
expected : EventTarget|goog.events.Listenable|null
found    : HTMLCanvasElement

  this.mouseDownKey_ = goog.events.listen(labCanvas.getCanvas(),
                                          ^

src/lab/app/SimController.js:256: WARNING - Could not instantiate type Array<goog.events.EventId<EVENTOBJ>>|Array<string>|goog.events.EventId<EVENTOBJ>|null|string with goog.events.EventType.
      goog.events.EventType.MOUSEDOWN, /*callback=*/this.mouseDown,
      ^

src/lab/app/SimController.js:256: WARNING - Invalid type for parameter 3 of function goog.events.listen.
expected : function(?):?|{handleEvent:function(?):?}|null
found    : function(this:myphysicslab.lab.app.SimController,goog.events.BrowserEvent):?

      goog.events.EventType.MOUSEDOWN, /*callback=*/this.mouseDown,
                                                    ^

src/lab/app/SimController.js:257: WARNING - Could not instantiate type T|undefined with myphysicslab.lab.app.SimController.
      /*capture=*/false, /*scope=*/this);
                                   ^

Thanks for all the bug reports. It may take a while to fix them, but I wanted to reply to assure you that they're not disappearing into a void :) We are currently working on making the rest of the compiler passes understand the new type inference, and we have fallen a bit behind on bug fixing. But we'll get back to it eventually.

Great, I hope the reports are useful.  FYI, about 80% of the 600 warnings on my code are the "Attempt to use nullable type" warning referenced in #830.

Right, the current type inference was loose about this, so we see many instances with the new type inference. These are usually legit warnings, not false positives, because there is a property access on a nullable type.
But because there are so many of them, if we find that people are not willing to spend the effort to fix them, we may turn off the warning, to not block adoption of the new type inference.

I'm closing this as it's not reporting a specific bug. Some of the individual warnings here have been fixed (see my comments on other bugs). If you find more, please file new issues, one issue per warning.


Change Group Policy key location from Chromium to Google\Chrome.

I use ungoogled-chromium on a couple of systems running Windows 10 IoT Enterprise LTSC 2021 that are connected to an AD domain.
I have installed the Google Chrome/Chromium group policy ADMX templates on the domain controller and systems running Google Chrome detect the policies without any issue. Except the systems that run ungoogled-chromium.
The policies are stored in the following registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome .
ungoogled-chromium expects the policies to be in the following location: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Chromium .
Can this be fixed? Or do I need a different ADMX template file? I downloaded the templates from the Chromium website.

Solved the problem by creating a registry GPO.


Group instructions together to reduce number of layers

@bparees PTAL, @mfojtik FYI no problem with keeping the comments in place :smile:

lgtm

@rhcarvalho can you build the image locally and verify docker inspect  Env if the values are correct (no trailing/extra whitespaces).
LGTM after quash.

@rhcarvalho can you build the image locally and verify docker inspect Env if the values are correct (no trailing/extra whitespaces).

I've checked this builds correctly before sending the PR :stuck_out_tongue_winking_eye:
And I have the experience messing around with Dockerfiles and their parsing (worked on Dockerfile rewrite code...), that's how I was sure about the possibility to interleave comments and non-comment lines.

needs rebase + squash

@bparees PTAL

so clean and efficient now, thanks @rhcarvalho! :)


fix(make/csv/readme): update docs and minor fixes

@lauriet-ibm this pr is just for doc/csv annotation fixes. i also still need to test upgrade with auditlogging not being served. have you tried testing it?


Fail devworkspace startup if we fail to download plugin metadata

What does this PR do?
Add structure to Components subresource to allow unrecoverable errors to be propagated to the DevWorkspace controller, and make the DevWorkspace controller fail DevWorkspace startup if an unrecoverable error occurs
What issues does this PR fix or reference?
Fixes https://github.com/devfile/devworkspace-operator/issues/165
Is it tested? How?
Tested on crc:

Deploy controller as normal
Apply theia devworkspace with nonexisting plugin:kind: DevWorkspace
apiVersion: workspace.devfile.io/v1alpha1
metadata:
  name: theia
spec:
  started: true
  routingClass: 'basic'
  template:
    projects:
      - name: project
        git:
          remotes:
            origin: "https://github.com/che-samples/web-nodejs-sample.git"
    components:
      - plugin:
          id: eclipse/che-does-not-exist/latest
      - plugin:
          id: eclipse/che-machine-exec-plugin/latest
    commands:
      - exec:
          id: say hello
          component: plugin
          commandLine: echo "Hello from $(pwd)"
          workingDir: ${PROJECTS_ROOT}/project/app

DevWorkspace status should be "Failed", and failed condition should mention that the plugin failed to download:❯ kc get dw theia -o yaml | yq -y .status
conditions:
  - lastTransitionTime: '2020-12-02T20:16:30Z'
    message: Failed to download plugin meta.yaml for eclipse/che-does-not-exist/latest
    status: 'True'
    type: FailedStart
phase: Failed
workspaceId: workspace1aff901509704461

Nitpick: For easier/faster reviewing, it's better to have the full command for execution, like for

Apply theia devworkspace with nonexisting plugin:

cat <<EOF | oc apply -f -
kind: DevWorkspace
apiVersion: workspace.devfile.io/v1alpha1
metadata:
  name: theia
spec:
  started: true
  routingClass: 'basic'
  template:
    projects:
      - name: project
        git:
          remotes:
            origin: "https://github.com/che-samples/web-nodejs-sample.git"
    components:
      - plugin:
          id: eclipse/che-does-not-exist/latest
      - plugin:
          id: eclipse/che-machine-exec-plugin/latest
    commands:
      - exec:
          id: say hello
          component: plugin
          commandLine: echo "Hello from $(pwd)"
          workingDir: ${PROJECTS_ROOT}/project/app
EOF

You still can use yaml as block language and it does not hurt a lot.

Nitpick: For easier/faster reviewing, it's better to have the full command for execution

Yeah I thought about that but I've been historically too lazy to memorize the
cat <<EOF | oc apply -f -
//...
EOF

incantation :)
I'll do it in the future.

I'm going to merge this PR as-is, as we're likely not going to be using the plugin broker for much longer (as we move to a different plugin mechanism in devfile/api v1alpha2) and fixing Serhii's suggestion (though it's a good idea) would be a fair amount of work + a plugin broker release.

Yeah I thought about that but I've been historically too lazy to memorize the

I always search for EOF in my bash history (Ctrl+E) to find this command each time I need it, it's why it asked you to provide it in the PRs. Who is lazy? :-D


Install button doesn't always show up for screen reader when navigating extensions list

Install button doesn't always show up when navigating extensions list.

open extension list with control+shift+x;
press end to go to last entry
press tab

should land on install button
focus moves to next thing in tab order which often is another editor or something

Workaround
If the button doesn't show up, move to next item, then arrow back to this one and button should now show up. Not sure what to do if at end of list.
I am a newbie to vsCode, so forgive me if this has been addressed or has an open issue associated with it. A quick search didn't find anything related.
Using NVDA as my screen reader.

It works for me when I am focused on last entry. Can you please record a video by enabling screen cast mode in the editor and share it? F1 > Developer: Toggle Screen Cast Mode


Alfred 4.6

Kirby Docs search is not working under Alfred 4.6.

@TakiKio I am afraid I'll need more than that - works fine for me, running on 4.6.1

Unfortunately it's not working anymore for me either. Possibly due to Monterey upgrade?
Mac OS 12.0.1 (M1)
Alfred 4.6.1
https://user-images.githubusercontent.com/12812201/145106702-48d60fcb-3448-48a9-b998-0ecb775b508d.mov

@foxacid @TakiKio that’s more probable. I know Monterey removed the systemwide php this depends on - do you have a PHP installed and available to CLI?

ah, yes. that must be it: https://www.alfredforum.com/topic/17062-using-php-on-monterey-macos-12

tbh that's all slightly over my head. I'm not sure what's the best way to proceed here. I'm using MAMP PRO's PHP. Should I additionally install php via homebrew and link that up?

OK I got it up and running. I installed PHP via Homebrew and added the path before the script (hint), like so:

OK, next problem is that {query} seems to be passed as a string!?

🥳 back in the game with the generous help of @adamkiss and script setting with input as {query}

export PATH="/opt/homebrew/bin:/usr/local/bin:${PATH}"
Thank you, that does the trick!

Ok, so it's definitely Monterey / PHP issue, not an Alfred 4.6 issue. I'll make a new issue with a description, closing this one.


Problems with reattaching files multiple times

Commit 6a031d7 in the attach-file branch changes test/attach_file_mini to try to do an attach/copy/detach sequence (like S3D is trying to do), and do it multiple times.  It works fine the first time, but the second iteration fails with:
test/attach_file_mini$ ./attach_file 0x7fcce0021a00, 0x7fcce4ddb380
0x7fcce0022ca0, 0x7fcce4ddb380
[0 - 7fcd06809700] {5}{runtime}: Multiple valid instances for restricted cohernece! This is almost certainly a runtime bug. Please create a minimal test case and report it.
attach_file: ../../runtime/legion/legion_analysis.cc:2195: bool LegionRuntime::HighLevel::MappingTraverser::map_restricted_physical(LegionRuntime::HighLevel::RegionNode*): Assertion `false' failed.
Aborted

Trying to get @jiazhihao on the "participants" list...

Did you make a minimal test case?

Yes. tests/attach_file_mini in the attach-file branch.

I pushed a fix for this bug to the master branch.  I also merged the change into the attach-file branch and confirmed that the test case now passes.  Assigning the bug back to Zhihao to confirm that it is fixed and to close the bug.

tests/attach_file_mini works with Mike's fix from master branch.


Katie's Week 3 Review Ticket

Katie's Github Pages
Checkpoint Grading
Everything on GitHub pages, or -2 checks.
Individual GitHub pages (3 points)
GitHub page for Test Prep study, requiring 5.3, 5.4 notes and actions( See "GitHub pages actions" at the bottom of each TPT page on cspcoders).
https://katiehickman.github.io/study

[x] 1- One Check 5.3
[x] 1- One Check 5.4

GitHub page that documents key learnings and code snippets using GitHub and replit.
https://katiehickman.github.io/project_doc
InfoDB lists

[x] 1 - One Check for New Data, minimum of 4 items

InfoDB loops

[x] 1- One Check For Loop running and sensible output
[x] 1- One Check While Loop running and sensible output
[x] 1- One Check Recursion running and sensible output

Fibonacci - (For Fibonacci(n) print complete list 0 - n and not just the nth term)
4- Four checks:

[x] 1- Algorithm and code with comments

[x] 1- Prints result

[x] 1- Prints Complete List

[ ] 1- Work on complex sequence with multiple words, spaces, special characters 0.75/1 check

[x] 1- One check: comments and documentation throughout

TOTAL SCORE: 4.73/5
Individual Score: 10.75/11
Score: 2.93/3 + Team Score: 1.8/2
Has everything linked properly on github pages. Nothing is missing. Not sure what work on complex sequences points are for. Everything neatly organized and easy to find as well.


Custom shapefile construction

Can you suggest a method for constructing a shapefile for another region?
For replicating the LULC pipeline

Typically one can get vector shapes for other regions either from official/governmental sources, or "draw" them using GIS software (e.g. QGIS).
You can have a look at low-res naturalearth dataset that comes with geopandas:
import geopandas as gpd

world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
world.plot()

Good luck!


Changes to marriages in Peru

Pivotal Tracker: https://www.pivotaltracker.com/projects/1270592/stories/109437744

Changes to all opposite sex outcome (Peru) by Content team
Changes to all same sex outcome (Peru) by Content team

Factcheck
Opposite Sex
https://smart-answers-pr-109437744.herokuapp.com/marriage-abroad/y/peru/uk/partner_local/opposite_sex
Same Sex
https://smart-answers-pr-109437744.herokuapp.com/marriage-abroad/y/peru/uk/partner_local/same_sex
Expected Changes
Opposite Sex
URL on Gov.UK
* Add new instructions required for opposite sex marriages in Peru
Before

After

Same Sex
URL on Gov.UK
* Add new instructions required for opposite sex marriages in Peru
Before

After

Apart from my question above this all looks good to me. :+1:

@ikennaokpala: It looks as if this PR was merged without re-basing against master. Was that just an oversight or have we stopped doing that?

@floehopper before merging I remember rebasing it against master


Add information about enabling integration tests

Executing Disabled Integration Tests
Some integration tests are not running automatically, but it is possible to execute them locally.
The reason for the tests being disabled is we can only deliver drivers where the license allows redistribution.
Therefore we cannot include some jdbc drivers to the projects and you need to download them manually for local integration testing.
List of disabled integration tests:

HiveSqlDialectIT

Starting Disabled Integration Test Locally

Download the Hive JDBC driver HiveJDBC41.jar

Temporarily put the driver into src/test/resources/integration/driver/hive directory.

If the files' names are different (you renamed the file, or it has a different version number, for example) from the mentioned above, edit src/test/resources/integration/driver/hive/hive.properties and settings.cfg files.

Run the tests from an IDE or temporarily add the integration test name into the maven-failsafe-plugin's includes a section and execute mvn verify command.

Remove the driver after the test and do not upload it to the GitHub repository.

Executing Disabled Integration Tests
Some integration tests are not running automatically, but it is possible to execute them locally.
The reason for the tests being disabled is we can only deliver drivers where the license allows redistribution.
Therefore we cannot include some jdbc drivers to the projects and you need to download them manually for local integration testing.
List of disabled integration tests:

HiveSqlDialectIT

Starting Disabled Integration Test Locally

Download the Hive JDBC driver HiveJDBC41.jar

Temporarily put the driver into src/test/resources/integration/driver/hive directory.

If the files' names are different (you renamed the file, or it has a different version number, for example) from the mentioned above, edit src/test/resources/integration/driver/hive/hive.properties and settings.cfg files.

Run the tests from an IDE or temporarily add the integration test name into the maven-failsafe-plugin's includes a section and execute mvn verify command.

Remove the driver after the test and do not upload it to the GitHub repository.