warning / error with JupyterLab 0.12.1

The Prerequisites state "JupyterLab 0.7.0 or later", but with JupyterLab 0.12.1, I get the following warning / error (?) when running both jupyter labextension install and enable:
X is not version compatible with installed JupyterLab version 0.12.1
    Expects JupyterLab version ^0.8.0 from packaged module<EMAIL_ADDRESS>    Expects JupyterLab version ^0.8.0 from packaged module<EMAIL_ADDRESS>

Just for completeness sake: the same happens when installing the package from PyPI.

@gnestor, the compatibility range should be >=0.x, <0.x+1 for semver.

@dlukes I just pushed a new version an hour ago. I've tested locally and it's working with lab 0.13.1. It looks like it has also been pushed to PyPI, but I didn't release it myself so I can't confirm.
@blink1073 Ok, so this line should read "jupyterlab": ">=0.11, <0.2"?

Thanks! I can confirm the extension works both when installed from source and from PyPI, though they're probably different versions -- the PyPI one is listed as "Map" in the "Open with" menu and the map widget stretches both vertically and horizontally to fill the viewport of the pane it's in, while the source one says "GeoJSON" and its height is fixed.

@gnestor, that line should say "jupyterlab": "^0.13.1",, which means it is compatible with 0.13.1-0.13.x releases.  By semver rules, all 0.x releases are major version changes.

@blink1073 The issue is that 0.14 was released today (and 0.13 was released 7 days ago), so with "jupyterlab": "^0.13.1" this extension would already be incompatible with master. I understand that while lab is in alpha/beta, breaking API changes will happen frequently (and in minor versions). However, when lab is out of beta, it would be ideal for extensions to target major versions (e.g. 1.x, 2.x) and lab to reserve breaking API changes for major versions. Otherwise, I suspect that we're going to see a lot more of X is not version compatible with installed JupyterLab version 0.x.x.

@gnestor, my point is that 0.13 -> 0.14 is a major version change.  We necessarily are breaking the API with each release.

I realize this is causing a lot of headache for extension authors, but I do not see an alternative until we stabilize our APIs (which we are trying as hard as we can to work towards).

And yes, what you propose is a sound strategy.  I will bring it up at the meeting this Friday.

(Sorry if I came off as testy, this has been a source of stress for me for quite some time now).

I think we are in agreement: At the moment, while in beta, breaking changes will happen constantly. After beta, breaking changes should only happen with major versions.
I'll update the current extensions and the cookiecutter to target ^0.14 and bump it on each 0.x release.

@dlukes I'll release a new version of jupyterlab_geojson to PyPI.


Change Font Size Of Whole Template

Respected  @almasaeed2010,  I Want To Change Font Size Of Whole Template. I Tried As Per Your Instruction On Page Link 'https://adminlte.io/blog/customizing-and-downsizing-adminlte-to-match-your-businsess' But Can't Find Proper Solution. Help Me For That. What Can I Do For Changing The Font Size Of Whole Templete.? Variable @font-size-base is in 'bower_components\bootstrap\less\variables.less' File And Your Link Only Gives Solution For 'build\less\variables.less' file.
Give Me Instruction What To Do?
Thank You.

Hi,
Unfortunately, the only way to do this is to override the css manually. There isn’t an automated solution for font sizes yet.
Thanks

Thank You.
But brother manually changes to CSS makes problem in whole template....
Like side bar has some issue and form element's placeholder font size didn't change...

i found that the font size between V2 and V3 are variance in Demo Template, seems V3 is much bigger than V2. the only way if i want to change it, is override the css manually ? or V3 can provide the function to change it for whole template ?


Problem with image size

There is a problem with image size it is not working properly.

Solved!!!


docs(installation): recommends nvs/nvm to linux & mac

Check List

[x] Others (Update, fix, translation, etc...)

Addresses https://github.com/hexojs/site/pull/1137#issuecomment-538716437, cc @SukkaW
I tested nvs; the official guide mentions installing to home folder, which means global npm packages are also installed there, so shouldn't have permission issue (I didn't experience any).

I have add a warning about Node.js permission in #1027 and it could be moved to Install Node.js part.

I just moved the warning to Node.js part. I prefer this PR over #1146 :

nvs is much easier to install on windows compared to nodejs official's. nvs is also available on Chocolatey.
Mac/Linux user should use a package manager, especially for programming packages. permission issue shouldn't be a deal breaker, it's trivial to change the default global npm path.

Having package manager (including Chocolatey) also make it easier to update, more likely to install update (especially security update), compared to nvs/nvm.

nvs operates similarly to nvm on Linux (should be similar on Mac too), not necessary to recommend nvs to Window, and nvm to Mac/Linux.
Nodesource should be prioritized for Linux, because Ubuntu/Debian LTS still ships with Node 8. I believe Redhat also ship that version. Other Linux distro (non-LTS or rolling release) should have newer Node, so installing from default repo is fine.
More concise.

@curbengh The guide of installing Node.js is for anyone who has no Node.js installed. Most of exprienced Node.js developers are already using nvm, n or nvs to manage their Node.js installation.
So we should let Windows & Mac users install Node.js use official installer, and for Linux users, we can let them follows the installation guide provided by Nodesource: https://github.com/nodesource/distributions#installation-instructions

Prioritized node.js installer in latest commit.
Anyway, previously I also added "Advanced installation" section (as part of https://github.com/hexojs/hexo-starter/issues/3) to install hexo locally. That is also a way to avoid permission issue and I think it's the best method (compared to nvs/nvm and npm path approaches), if user is fine with changing $PATH.
Global npm package should only be installed when it's necessary to use a single version across multiple projects. This is not applicable to Hexo because most users would have only one blog folder. Installing a global hexo-cli is actually more like a workaround because it takes care of $PATH.
If anyone see linux user struggle with permission issue, I recommend to point to "Advanced installation" section. Or $ echo "prefix=$HOME/.local" >> ~/.npmrc.
I also intend to provide Snap and Flatpak packages as another alternative for Linux user, though Nodejs binary still needs to be installed beforehand.

Node.js has an "official guide" for installing Node.js through package manager: https://nodejs.org/en/download/package-manager/

Node.js has an "official guide" for installing Node.js through package manager: https://nodejs.org/en/download/package-manager/

Thanks. Added the link. I still retain the Mac/Linux package manager list, otherwise the guide looks too Windows-ish.


cannot write: EPROTO - only v0.11.52 works for me.

-->
Issue

[8/10/2020, 14:20:18] [Hue] Philips hue: bridge request 354: get /config
[8/10/2020, 14:20:18] [Hue] Philips hue: bridge communication error: : cannot write: EPROTO
[8/10/2020, 14:20:18] [Hue] Philips hue: heartbeat error: : cannot write: EPROTO
[8/10/2020, 14:20:23] [Hue] Philips hue: bridge request 355: get /config
[8/10/2020, 14:20:23] [Hue] Philips hue: bridge communication error: : cannot write: EPROTO
[8/10/2020, 14:20:23] [Hue] Philips hue: heartbeat error: : cannot write: EPROTO

Debug Files

This is not a Homebridge Hue problem.  Most likely, you run another plugin, firewall, or (reverse) proxy that breaks the HTTPS connection between Homebridge Hue and the Hue bridge.  v0.11.52 is the last version that uses plain HTTP.  Later versions use HTTPS to connect to the Hue bridge.    You could try setting forceHttp in config.json to use plain HTTP, but I don't know for how long the Hue bridge will continue to support that.

Thank you for the quick reply. Now I know in which direction to look for a solution.


Update tree.mdx

Updated the explanation of the tree control.

Changes

Testing

Docs

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


Convert hal and metro m0 to rust 2018 edition

I just wanted to try this out, so it's only the hal and metro_m0 for now.
This reduces a bit of boiler plate wrt. condition extern crate and use in a couple of places, and as a happy coincidence can help remove some parameters from the define_pins macro (although I suspect we could do that even without this).
This PR does change the signature of our exports, so we'd need to bump our version numbers, but since we just bumped them for the stable rust effort, and haven't pushed to crates.io yet, I haven't bumped the numbers here.
Also: https://github.com/atsamd-rs/atsamd/issues/13 is worth revisiting as part of this.

I tried to resolve the conflicts since this PR is rather stale. Travis will tell if I did it right.


Minor doc comment edits

Codecov Report
Base: 84.42% // Head: 84.40% // Decreases project coverage by -0.03% :warning:

Coverage data is based on head (49d5131) compared to base (42573c0).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #257      +/-   ##
==========================================
- Coverage   84.42%   84.40%   -0.02%
==========================================
  Files          10       10
  Lines        4261     4261
==========================================
- Hits         3597     3596       -1
- Misses        404      407       +3
+ Partials      260      258       -2

Impacted Files
Coverage Δ

nodehost.go
86.26% <ø> (ø)

node.go
79.70% <0.00%> (-0.09%)
:arrow_down:

request.go
93.46% <0.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Type narrowing does not work for unions which contain template literals.

Bug Report
Type narrowing does not work for unions which contain template literals, the type fails to narrow.
🔎 Search Terms
Narrowing type literals
I found an existing issue that seems similar to this, however what they are trying to do is fundamentally different to what I am. https://github.com/microsoft/TypeScript/issues/42007
🕗 Version & Regression Information
Today
This is the behavior in every version I tried, and I reviewed the FAQ for entries about template literal type narrowing
⏯ Playground Link
Playground link with relevant code
💻 Code

type Correct = {
	code: string
	property: true
	err: undefined
}
type Err = {
	err: `${string} is wrong!`
}
type SomeReturnType = Correct | Err;

// Create a example instance of the type to show the broken narrowing.
const example: SomeReturnType = {} as SomeReturnType;

// If property err is undefined then the type should narrow to Correct...
if (example.err === undefined) {
	// Instead the type stays the same and I get Property does not exist!
	example.property;
}

// Doing the same with a non literal error message

type NonLiteralError = {
	err: string
}
type SomeReturnTypeNonLiteral = Correct | NonLiteralError;

// Create a example instance of the type to show the working narrowing using a non literal.
const nonLiteralExample: SomeReturnTypeNonLiteral = {} as SomeReturnTypeNonLiteral;

// If property err is undefined then the type should narrow to Correct...
if (nonLiteralExample.err === undefined) {
	// And it does!
	nonLiteralExample.property;
}

🙁 Actual behavior
Type should narrow to Correct on check that err is undefined .
🙂 Expected behavior
Type stays SomeReturnType and does not narrow.

Should be a straightforward bug to fix since this works as expected for a regular string. Somewhere an if or switch is missing a case.


Changed Recent Sets Layout to Minimal and added a Full Layout

Made some changes to the recent sets layout, so I decided to change the original base to the minimal
format and introduced a full layout with more data on screen including:

Player Names
Phase Data
Round Data
Event Name

There is only 1 minor issue currently with the new layout, and that being the right hand player name slightly hangs to far to the right. I've tried numerous changes to make it work, but can't find the right CSS combo to fix it, so I may have to have Shino look into it before it is pulled into TSH.

Wow, looks really good! I just moved from Brazil to Lisbon so there's a lot going on right now and for a few weeks but as soon as I can I'll check it in depth!

After looking into it further, the slight overhang of the names also exists on the original minimal layout that didn't include the player names. It seems like the widths are slightly off because of the Recent Sets title and the player names might be a side effect from it. I still tried to include some fixes in that regard but couldn't find anything to help, so again, may need Shino's guidance on that one cause he may have a solution.
Otherwise, PR is ready again after some fixes otherwise!

I'm still not 100% installed but I might have time here and there now :P
Can you show me an example / give the input for me to see this issue with P2's name alignment?

It seems more showable in the original minimal design, but I believe I fixed this with larger sizes on the full version no problem. Now, if we shrink down the layouts, that may be a different story, but for now at full size the minimal one shows it more than the full one, which I apparently mitigated already (Kinda sorta).


new lexer request: dot (graphviz)

(Original issue 1024 created by psuter on 2014-08-12T08:29:53.471324+00:00)
The DOT language is used by the open source graph visualization software Graphviz to represent structural information as diagrams of abstract graphs and networks.
The language grammar is described at http://www.graphviz.org/doc/info/lang.html
An example:
#!dot
    digraph G {
       Hello->Pygments
    }

Would be nice to have a lexer for this in Pygments.

(Original issue was assigned to tshatch)

(Original comment by tshatch on 2015-10-17T02:58:14.574333+00:00)
Issue #1135 was marked as a duplicate of this issue.

(Original comment by auge on 2016-03-10T13:55:34.707881+00:00)
in the meantime, I use "C".
It produces reasonable colors for comments, strings and numbers ...

(Original comment by nikeee on 2018-04-09T12:32:11.459759+00:00)
Aby news on this one?

(Original comment by psuter on 2018-04-09T21:30:52.797972+00:00)
A basic attempt:
#!python

from pygments.lexer import RegexLexer, bygroups
from pygments.token import (Comment, Keyword, Operator, Name, String,
    Number, Punctuation, Whitespace)

__all__ = ['GraphvizLexer']

class GraphvizLexer(RegexLexer):
    """
    For graphviz DOT graph description language.

    .. versionadded:: 2.3.0
    """
    name = 'Graphviz'
    aliases = ['graphviz']
    filenames = ['*.gv', '*.dot']
    mimetypes = ['text/x-graphviz']
    tokens = {
        'root': [
            (r'\s+', Whitespace),
            (r'(#|//).*?$', Comment.Single),
            (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
            (r'(?i)(node|edge|graph|digraph|subgraph|strict)\b', Keyword),
            (r'--|->', Operator),
            (r'[{}[\]:;,]', Punctuation),
            (r'(\b\D\w*)(\s*)(=)(\s*)', bygroups(Name.Attribute, Whitespace, Punctuation, Whitespace), 'attr_id'),
            (r'\b(n|ne|e|se|s|sw|w|nw|c|_)\b', Name.Builtin),
            (r'\b\D\w*', Name.Tag), # node
            (r'[-]?((\.[0-9]+)|([0-9]+(\.[0-9]*)?))', Number),
            (r'"(\\"|[^"])*?"', Name.Tag), # quoted node
            (r'<', Punctuation, 'xml'),
        ],
        'attr_id': [
            (r'\b\D\w*', String, '#pop'),
            (r'[-]?((\.[0-9]+)|([0-9]+(\.[0-9]*)?))', Number, '#pop'),
            (r'"(\\"|[^"])*?"', String.Double, '#pop'),
            (r'<', Punctuation, ('#pop', 'xml')),
        ],
        'xml': [
            (r'<', Punctuation, '#push'),
            (r'>', Punctuation, '#pop'),
            (r'\s+', Whitespace),
            (r'[^<>\s]', Name.Tag),
        ]
    }

(Original comment by nikeee on 2018-04-21T01:02:13.099452+00:00)
Is there anything that's missing in this lexer?

(Original comment by psuter on 2018-04-21T06:08:53.029824+00:00)
Like what?
It explicitly lists all the following things mentioned in the language grammar:

All six case-independent keywords  (node, edge, graph, digraph, subgraph, strict).

All ten compass point values (n, ne, e, se, s, sw, w, nw, c,  _).

All seven "punctuation" characters ({, }, [, ], :, ;, ,).

Both edge operators (--, ->).

All comment styles (/* */, //, #).

Whitespace.

All four ID identifiers:

Strings. (But not using the exact character ranges.)
Numerals.
Double quoted strings ("). (Missing: Multi-line escaping and + operator to concatenate strings.)
HTML strings (<, >). (But not using real XML parsing. No & escape sequences etc.)

I don't see any other tokens mentioned in the grammar. The missing things (XML, multi-line escaping etc.) all seem quite exotic and unimportant to me, but feel free to add them.
On a higher level, the strings can represent different things like attribute names, node names etc.
The ~200 attribute names etc. are not explicitly listed.
The node names are user defined, so can't be explicitly listed.
But attribute and node names are distinguished implicitly by position.
If this all works 100% correctly in all cases I don't know.

(Original comment by nikeee on 2018-04-21T11:46:03.043356+00:00)
I mean to be able to be merged to pygments. I think it's a pretty decent solution.

(Original comment by nikeee on 2018-05-26T13:56:08.111416+00:00)
As I need this lexer in my current paper using minted, I put this lexer (with some changes) on GitHub and added a setup.py.
https://github.com/nikeee/pygments-lexer-graphviz

As a lexer is ready for this, can it please be integrated?

If someone can turn that into a PR, then yes, should be fairly quick to integrate.

@nikeee As you created the repo at https://github.com/nikeee/pygments-lexer-graphviz, could you please create the pull request?

I'd do it.
Keep in mind that I'm not the author of the lexer. It was the work of psuter.

I'd do it.
Keep in mind that I'm not the author of the lexer. It was the work of psuter.

Is that @petsuter?

Right, please feel free to create a PR and integrate it.

I created a PR for this one (#1657).


make sure that qlog events are logged in order

Fixes #2464.

Codecov Report

Merging #2465 into master will increase coverage by 0.05%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #2465      +/-   ##
==========================================
+ Coverage   85.42%   85.47%   +0.05%
==========================================
  Files         120      120
  Lines        9349     9383      +34
==========================================
+ Hits         7986     8020      +34
  Misses       1007     1007
  Partials      356      356

Impacted Files
Coverage Δ

qlog/qlog.go
95.58% <100.00%> (+0.78%)
:arrow_up:

Continue to review full report at Codecov.

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


Connection error!

Connection error! ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MariaDB client
When trying to connect to MySQL

Unfortunately, the new authorization system (MySQL 8) is not supported
More info -> #104


Error in console

*Detailed description of the issue:
Error in console when a player is killed
ERROR (DELETE IF YOU HAVE NO ERROR):
https://pastebin.com/bkePuFSX
CONFIG SECTION (DELETE IF NOT RELEVANT):
#####################################
## PASTE RELEVANT CONFIG SECTION HERE ##
#####################################

Jobs version: <IP_ADDRESS>
Server Type (Spigot/Paper/etc): Airplane
Server Version (using /ver): git-Airplane-11 1.16.5

Made small fix relating to this, but in general error originates at WildStacker plugin and not in Jobs.
dd955ec79e298d9f4885923ca6b5d350b3651326


No way to delete D3DShot instance.

Can we add possibility to force delete instance? Like in : https://stackoverflow.com/questions/43619748/destroying-a-singleton-object-in-python . I've tested it locally and it's work for me.
I need to delete / re-create instance to recover D3DShot from some situation. For ex. D3DShot will stuck in case of D3DCtx changed. Issuse: https://github.com/SerpentAI/D3DShot/issues/30

if d is the name of your object, simply do: d.stop()


[plugin-http] update parseResponseStatus from new specs

After reading new specs, http plugin need to update parseResponseStatus function...
I believe that switch/case should be removed because it will be too complex (hard to read) to handle new specs.

What would you prefer to have instead of the switch/case? In my opinion it is plenty readable.

Would it make sense for this logic to be shared between the web browser XHR and HTTP plugins in some way? Maybe a core-http library of some kind? Not sure if it's worth it since "duplication is better than the wrong abstraction", but wanted to ask the question anyway.
cc/ @obecny

could we have an enum for that ?


fix(tooltip): remove native event listener on component destroy

Component should clean up events it has registered to.
Closes #4499

cc @andrewseguin

@michastreppel  Can you rebase this so we can merge?

Changes are now in PR#5144

#5144


As a traveller, I want to add activities that I want to do

so that I can plan my trip

Implemented while morphing from addressbook in https://github.com/AY1920S1-CS2103T-T09-1/main/pull/72 pull request.


Migrate client from jest to vitest

Vitest is supposed to be a drop-in replacement for Jest. But in our client library this wasn't the case, since the tests are implemented a bit differently. That's why this took bit longer, and I would like to share my thoughts about it here.
MSW
The main idea is that I think we should be testing less implementation details. The beauty of Mock Service Worker (MSW) is that it basically gently nudges everything in the right place. With the client lib lots of tests make http requests. This is where MSW comes in and defining the number of responses and their body already makes for a great test "boundary" at the right level. To me it feels right to define the Response object and status code etc. over having to dive into the code and trying to find a right "hook" to mock something (which might change over time).
Small example: when testing polling and defining 4 responses from the polling endpoint with the last response required for the end result that we assert, we no longer need to assert the number of requests or their individual values. And too little or too many requests would fail the test.
State
We have some tests that basically share state across tests. This works, since Jest executes tests in the expected order. However, when running only one of them or in a different order some of them fail, leading to surprises or even hard to debug situations. I've made an attempt to improve this (e.g. by moving variables from the module scope to within the describe scope).
State should not be shared across tests, but it should be easy to have some "base" object to work from (e.g. a transaction or IPactCommand object). I've noticed that we sometimes use let to re-assign values (and use it across tests), and the delete keyword. The issue with this is that it doesn't throw when nothing was deleted. Things combined, moving to a simple getObject() helper to always get a fresh object is easy and safe.
(I've played a bit with a combo of deepFreeze 🥶 and structuredClone 🐑🐑 which worked quite well, but has other ups and downs, so eventually simplicity won.)
Silence
We're doing jest --silence to avoid noise in the CLI and/or CI, but this also reduces visibility of actual issues. So loudness it is. Maybe sometimes, if it makes sense, this could also serve as motivation to improve error handling.
Fin
For now I've repeated the MSW setupServer logic in each test separately, maybe eventually we can optimize/reuse a bit more across tests or even packages.

Nice improvement. I also tried to mock fetch while writing the test but found it difficult msw is great tool here. I agree that we should avoid to test the details of implemention and teat functionality instead but for some scenarios details are important. For example pollStatus should return the result once it has it so I checked if it avoid redundant calls. I Still prefer to have thoses asserts if its easy to have them with msw.

Agreed, so I tried to keep what we had as much as possible. Please take a close look at these two related examples and let me know if there's something missing:

status.test.ts
client.test.ts#L189-L320

Nice improvement. I also tried to mock fetch while writing the test but found it difficult msw is great tool here. I agree that we should avoid to test the details of implemention and teat functionality instead but for some scenarios details are important. For example pollStatus should return the result once it has it so I checked if it avoid redundant calls. I Still prefer to have thoses asserts if its easy to have them with msw.

Agreed, so I tried to keep what we had as much as possible. Please take a close look at these two related examples and let me know if there's something missing:

status.test.ts
client.test.ts#L189-L320

I meant these kind of checked expect(chainwebClient.poll).toBeCalledTimes(3); that checked we call the poll endpoint only three times not more. but I think we don't need this anymore as MSW itself clearly shows this.
   server.resetHandlers(
    post('http://example.org/mainnet01/1/api/v1/send', {
      requestKeys: ['test-key'],
    }),
    post('http://example.org/mainnet01/1/api/v1/poll', response[0]),
    post('http://example.org/mainnet01/1/api/v1/poll', response[1]),
    post('http://example.org/mainnet01/1/api/v1/poll', response[2]),
  );


Add contributing.md

This adds contributing guidelines as discussed on the hackathon

Please give feedback @inexor-game/code-developers =)

Merged with https://github.com/inexor-game/code/commit/0504855fa0f5a7fae11f577687ffebc507407ee8


set html content of an element behaves different with browser

Hi Guys,
I notice this different behavior when you try to set the html content of an element. Here's an example:

In browser(chrome), if I set the html before the li element show up, nothing will happen. The li element will not be changes. But in jsdom, the content will always be changed no matter what order it is. Is this intended?
Cheers

Not intended, but sadly a problem with our script loading behaviour which is hard to fix.


GEOMESA-2656 Cache writers during local ingest

Flush each writer every 20k features
Configurable via geomesa.ingest.local.batch.size
New scala-friendly object pool impl:
org.locationtech.geomesa.utils.io.CloseablePool

Signed-off-by: Emilio Lahr-Vivaz<EMAIL_ADDRESS>

Geomesa is version 2.3.0 and hbase is version 1.1.2. By default, the time split table is used. When data is inserted, a new table can be created dynamically, but the table information cannot be stored in the metadata,why?the version?or somethins else?

@crazyxxl Can you ask your question on Gitter or the GeoMesa-user list?


Move to TypeScript

This PR is an experiment to see how we can utilize TypeScript to transpile the source code into CommonJS/ESM code included in the package. The benefit is that we have type-checked source code and also don't have to manually maintain a type definition in index.d.ts.

@Murderlon You mentioned that dual publishing a package containing CommonJS and ESM can lead to unexpected problems. Are there some links or resources digging more into this? Are you referring to what Node.js calls the dual package hazard? We have dual published this package for four years (since https://github.com/tus/tus-js-client/commit/bdb614438378c938444456941496da534414df6b) and didn't run into any problems and no major issues where reported to us.
By completely ditching CommonJS, I am worrying that we leave some application behind which are still using it and have a hard time upgrading to ESM (I think to recall that our website tus.io also still compiles to CommonJS, but I might get that wrong). Is this concern unjustified nowadays?

You mentioned that dual publishing a package containing CommonJS and ESM can lead to unexpected problems. Are there some links or resources digging more into this?

This from my experience + some other prominent maintainers I talk with. All my issues in the past with a package were from dual publishing, not ESM. Examples include Preact itself and even the package dual-publish, which is supposed to solve it.
It is possible and since we already have it working it's not really a problem. But at some point we should make the jump, ESM is the future.

By completely ditching CommonJS, I am worrying that we leave some application behind which are still using it and have a hard time upgrading to ESM

Technically everyone can use it, even in a CommonJS setup:
const tusPromise = import('tus-js-client')

module.exports = tusPromise.then((tus) => tus.default)

It's not the ideal developer experience, but it's important to note that tus-js-client is close to done for tus protocol v1. It's stable and it's totally fine to stay on the previous major version if you must for a while. And even without ditching CommonJS, this would be a major version anyway, and I think it's better to have less major versions (rather than major version for TS then later again for ESM).

Some tools which are importent to check:

https://github.com/wooorm/package-exports (gives errors and warnings based on our package.json)
https://arethetypeswrong.github.io/?p=tus-js-client%404.1.0
Information for users who now have to deal with an ESM package.

Some more warnings:
<EMAIL_ADDRESS>


一个问题

可以将kong 的数据迁到 apisix 的意思吗？可以写详细些。步骤什么的。谢谢

Hi @yaobo-lab We are still working on this project and right now it's still a bit far from the expected. And yes, that's the purpose of this project, trying to provide a tool to migrate from kong to apisix without pain.
I'll ping you when we provide a minimal working product~

Hi @yaobo-lab We are still working on this project and right now it's still a bit far from the expected. And yes, that's the purpose of this project, trying to provide a tool to migrate from kong to apisix without pain.
I'll ping you when we provide a minimal working product~

ok


Youtube-dl not downloading watch later playlist

Checklist

[X] I'm reporting a broken site support issue
[X] I've verified that I'm running youtube-dl version 2021.01.16
[X] I've checked that all provided URLs are alive and playable in a browser
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar bug reports including closed ones
[X] I've read bugs section in FAQ

Verbose log

PASTE VERBOSE LOG HERE

youtube-dlc -v -u<EMAIL_ADDRESS>-j https://www.youtube.com/playlist?list=WL --playlist-start 1
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', '-u', 'PRIVATE', '-j', 'https://www.youtube.com/playlist?list=WL', '--playlist-start', '1']
Type account password and press [Return]:
[debug] Loading archive file None
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dlc version 2020.11.11-3
[debug] Python version 3.7.5 (CPython) - Linux-5.3.11-100.fc29.x86_64-x86_64-with-fedora-29-Twenty_Nine
[debug] exe versions: ffmpeg 4.0.5, ffprobe 4.0.5
[debug] Proxy map: {}
WARNING: Unable to look up account info: HTTP Error 400: Bad Request
Description

WRITE DESCRIPTION HERE
Trying to download the watch later playlist. Entered credidentials as requested, and it keeps giving the same error. Tried youtube-dl, and youtube-dlc. Same result.

You have to use authenticated cookies.

You have to use authenticated cookies.


README file

Pl, update the readme file with proper execution steps.
Dependency error:
Testing started at 3:13 PM ...
3:13:16 PM: Executing task 'test'...

Task :compileJava FAILED
FAILURE: Build failed with an exception.

What went wrong:
Could not resolve all files for configuration ':compileClasspath'.

Could not find com.cognifide.qa.bb:bb-core:2.0.0-SNAPSHOT.
Searched in the following locations:
file:/Users//.m2/repository/com/cognifide/qa/bb/bb-core/2.0.0-SNAPSHOT/maven-metadata.xml
file:/Users//.m2/repository/com/cognifide/qa/bb/bb-core/2.0.0-SNAPSHOT/bb-core-2.0.0-SNAPSHOT.pom
file:/Users//.m2/repository/com/cognifide/qa/bb/bb-core/2.0.0-SNAPSHOT/bb-core-2.0.0-SNAPSHOT.jar
https://repo.maven.apache.org/maven2/com/cognifide/qa/bb/bb-core/2.0.0-SNAPSHOT/maven-metadata.xml
https://repo.maven.apache.org/maven2/com/cognifide/qa/bb/bb-core/2.0.0-SNAPSHOT/bb-core-2.0.0-SNAPSHOT.pom
https://repo.maven.apache.org/maven2/com/cognifide/qa/bb/bb-core/2.0.0-SNAPSHOT/bb-core-2.0.0-SNAPSHOT.jar
Required by:
project :
Could not find com.cognifide.qa.bb:bb-junit5:2.0.0-SNAPSHOT.
Searched in the following locations:
file:/Users//.m2/repository/com/cognifide/qa/bb/bb-junit5/2.0.0-SNAPSHOT/maven-metadata.xml
file:/Users//.m2/repository/com/cognifide/qa/bb/bb-junit5/2.0.0-SNAPSHOT/bb-junit5-2.0.0-SNAPSHOT.pom
file:/Users//.m2/repository/com/cognifide/qa/bb/bb-junit5/2.0.0-SNAPSHOT/bb-junit5-2.0.0-SNAPSHOT.jar

Hi,
These tests are still in development for new bobcat 2.0. They should compile with branch 2.0.0-develop of bobcat. However they can still change because new AEM Authoring  Tests API is also in development

@Shaihuludus Thanks. How can I get early access to these test? I am in R/D team and constantly advocating bobcat 2.0. Pl let me know the minimal setup to proceed further.

You can checkout branch 2.0.0-develop from bobcat repository and build it.  Tests from this repository should work with such build.
If You are interested in new API then new modules are:

bb-aem-core - interfaces and some core classes
bb-aem-64 - implementations for AEM 6.4

However there is no documentation except for javadocs and we are still in active development of this features so API can change or break before final release (we hope for december but I can't give solid date today)

Sorry my mistake. Branch for AEM API is 277-aem-author

All AEM features are now merged into 2.0.0-develop branch - I've updated the README file.


CPP term should be better explained or not use abbreviation

"Yes, as long as the GUID is present when the template is deployed, usage is tracked. Partners are required to have a profile in the CPP to register GUIDs used for the deployment outside of the Azure Marketplace."
The term CPP is not directly explained on the page (even if one could deduct that it means Cloud Product Performance) from a screenshot elsewhere on the page. I think one should avoid using the abbreviated term without stating exactly what it refers to.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: db44bc8f-a6d7-8651-165d-929230435633
Version Independent ID: c7847825-9d79-419e-a177-aca5872f1431
Content: Azure partner and customer usage attribution
Content Source: articles/marketplace/azure-partner-customer-usage-attribution.md
Service: marketplace
Sub-service: partnercenter-marketplace-publisher
GitHub Login: @yijenj
Microsoft Alias: pabutler

Thanks for your comment. We are actively investigating and will get back to you shortly. Thanks for your patience.

adding @qianw211 to help review this doc enhancement request.

@olavt sorry for the delayed response and thanks for point this out. We are working on sweeping edits regarding the Cloud Partner Portal (CPP). For now, I have made some minor edits for clarification in this article. Please let us know if you have other questions.
#please-close


PHPCBF Breaks Syntax

The Problem
When running unit tests, I see over 30 errors saying that classes like Translationmanager\Exception\UnexpectedEntityException are not found. Further up in the output, I see raw PHP code for those classes, like so:
.....E<?php# -*- coding: utf-8 -*-

namespace Translationmanager\Exception;

/**
 * Class InvalidPostException
 *
 * @author Guido Scialfa<EMAIL_ADDRESS> */
class UnexpectedEntityException extends EntityException
{
    /**
     * Create a new Exception for Unexpected Post Value Retrieved
     *
     * @param string $postType
     * @param string $message
     * @return UnexpectedEntityException
     */
    public static function forPostValue($postType, $message)
    {
        $message = $message ?: "Unexpected post value retrieved for post type {$postType}";

        return new self($message);
    }

    /**
     * Create a new Exception for Unexpected Term Value Retrieved
     *
     * @param mixed $value
     * @param string $message
     * @return UnexpectedEntityException
     */
    public static function forTermValue($value, $message)
    {
        $valueType = is_object($value) ? get_class($value) : gettype($value);
        $message = $message ?: "Unexpected term value retrieved. Should be WP_Term but got {$valueType}";

        return new self($message);
    }
}

Possible Cause
The start of comment sequences // or # are too close to the opening PHP tag <?php. This makes the interpreter misinterpret the files included by autoloading as text instead of PHP.
Suggested Solution
Amend the rules to include a space between the starting PHP tag and the encoding declaration comment.
Specs

PHP: 7.1;
PHPUnit: 7.5.20;
inpsyde/php-coding-standards: 38546e64d1f04fb69d7105bfe41ef9e46c6f8bfb.

This only happens when there already was an encoding declaration on the same line as the opening PHP tag. See c10f79564643fa6e4af97df7114438638399dbec.

This only happens when there already was an encoding declaration on the same line as the opening PHP tag. See c10f79564643fa6e4af97df7114438638399dbec.

Looks like it's one of PSR12.Files.OpenTag.NotAlone or PSR12.Files.FileHeader.SpacingAfterBlock that's doing this.

Looks like it's one of PSR12.Files.OpenTag.NotAlone or PSR12.Files.FileHeader.SpacingAfterBlock that's doing this.

It was PSR12.Files.OpenTag.NotAlone. Excluding this sniff results in the tag being alone, and a blank line between it and the comment.

It was PSR12.Files.OpenTag.NotAlone. Excluding this sniff results in the tag being alone, and a blank line between it and the comment.

This looks like a bug in the upstream PSR12 rule.
We could exclude the rule in our standard, but the rule itself is fine. The problem is the "fix" part that is problematic. Maybe we should send a PR to PHPCS...

This looks like a bug in the upstream PSR12 rule.
We could exclude the rule in our standard, but the rule itself is fine. The problem is the "fix" part that is problematic. Maybe we should send a PR to PHPCS...

Yep, looks like a problem in PSR12. Sounds good!

Yep, looks like a problem in PSR12. Sounds good!

I'm closing this. We're receiving bugfixes release sfrom upstream PHPCS so we should get the fix if they do it. If the fix will be done in a major/minor, we will get that when we'll update... I think we need to keep PHPCS updated anyway.

This is still present, FYI.


Safely store concurrent compact index downloads

When bundler is run concurrently using the same bundle dir in $HOME,
the versions file can be updated from two processes at once. The
download has been changed to a temporary file, which is securely moved
into place over the original.
If retrying the update operation, the original file is no longer
immediately deleted and instead a full download is performed, later
overwriting the original file if successful.
If two processes are updating in parallel, this should ensure the
original file isn't corrupted and that both processes succeed.

Fixes #4519

This would be useful on 1.12.x if possible, since the new caching behaviour with a shared home directory is causing the errors described in #4519.

Could you try and add some test coverage for this?

These changes generally look good to me

Could you try and add some test coverage for this?

I've added a test around bundle install that emulates a concurrent modification of the cached file during the HTTP request, then verifies that a corrupt file wasn't written to disk.

Awesome, thanks!
👍

@indirect r?

This looks great, thanks a lot!

@homu r+

:pushpin: Commit 97bf593 has been approved by indirect

:hourglass: Testing commit 97bf593 with merge c16bf58...

:sunny: Test successful - status


last entry select doesn't working

I'm trying to use the select function to take the last entry but isn't working like I expected.
Here is my test:
iex> CubDB.put(CubMyDB, {"cls", <<246, 85>>, 1}, "um")
:ok
iex> CubDB.put(CubMyDB, {"cls", <<246, 85>>, 2}, "dois")
:ok
iex> CubDB.put(CubMyDB, {"cls", <<246, 85>>, 3}, "tres")
:ok

If I select after that, it works:
iex> CubDB.select(CubMyDB, reverse: true) |> Enum.take(1)
[{{"cls", <<246, 85>>, 3}, "tres"}]

But now I'll insert two more with another key:
iex> CubDB.put(CubMyDB, {"cls", <<52, 31>>, 1}, "new one")
:ok
iex> CubDB.put(CubMyDB, {"cls", <<52, 31>>, 2}, "new two")
:ok

Ok, let's try to take the last one.
The wrong result:
iex> CubDB.select(CubMyDB, reverse: true) |> Enum.take(1)
[{{"cls", <<246, 85>>, 3}, "tres"}]

If I list all entries in reverse order:
iex> CubDB.select(CubMyDB, reverse: true) |> Enum.to_list
[
  {{"cls", <<246, 85>>, 3}, "tres"},
  {{"cls", <<246, 85>>, 2}, "dois"},
  {{"cls", <<246, 85>>, 1}, "um"},
  {{"cls", <<52, 31>>, 2}, "new two"},
  {{"cls", <<52, 31>>, 1}, "new one"}
]

Hi,
I changed my approach and it worked.
The second value in the tuple I changed to a time based key.
iex> CubDB.put(CubMyDB, {"cls",<PHONE_NUMBER>914258, 1}, "um")
:ok
iex> CubDB.put(CubMyDB, {"cls",<PHONE_NUMBER>914258, 2}, "dois")
:ok
iex> CubDB.put(CubMyDB, {"cls",<PHONE_NUMBER>914258, 3}, "tres")
:ok

iex> CubDB.put(CubMyDB, {"cls",<PHONE_NUMBER>537998, 1}, "new one")
:ok
iex> CubDB.put(CubMyDB, {"cls",<PHONE_NUMBER>537998, 2}, "new two")
:ok

iex> CubDB.select(CubMyDB,  min_key: {"cls", 0, 0}, max_key: {"cls", nil, nil}, reverse: true) |> Enum.to_list

[
  {{"cls",<PHONE_NUMBER>537998, 2}, "new two"},
  {{"cls",<PHONE_NUMBER>537998, 1}, "new one"},
  {{"cls",<PHONE_NUMBER>914258, 3}, "tres"},
  {{"cls",<PHONE_NUMBER>914258, 2}, "dois"},
  {{"cls",<PHONE_NUMBER>914258, 1}, "um"}
]

Thanks!


feat: add Azure read cost request options

Hi @gsamuya @SnhrK Please help review this PR, it is for Azure read cost request options.


IP address + exported port instead of endpoint from marathon

What version of Traefik are you using (traefik version)?

Linux RHEL 7.2
my configuration file
debug = true
accessLogsFile = "log/access.log"
logLevel = "INFO"
defaultEntryPoints = ["http"]
[entryPoints]
   [entryPoints.http]
   address = "infra-q-i-mes01:8008"
[web]
address = ":8009"
[web.statistics]
   RecentErrors = 10
[marathon]
endpoint = "http://infra-q-i-mes01:8080"
watch = true
domain = "infra-q-i-mes01"

The deployed app details in Marathon :
Host: infra-q-i-mes01
IP Addresses: <IP_ADDRESS>
Ports: [31855]
Endpoints: infra-q-i-mes01:31855
Service Discovery: n/a
Status: Started
Staged at: 03/03/2017 à 18:26:26
Started at: 03/03/2017 à 18:26:27
Version: 2017-03-03T17:13:55.405Z
Health: Healthy
Mesos details: link

The deployed app configuration
Notice the 2 traefik labels
{
  "id": "trace",
  "cmd": null,
  "cpus": 1,
  "mem": 512,
  "disk": 0,
  "instances": 1,
  "container": {
    "docker": {
      "image": "sysadm-reg/assemblage/trace:1.4-20170303.164750-23",
      "network": "BRIDGE",
      "parameters": [],
      "portMappings": [
        {
          "containerPort": 8080,
          "protocol": "tcp",
          "name": "tomcat",
          "labels": null
        }
      ],
      "forcePullImage": true
    },
    "type": "DOCKER",
    "volumes": []
  },
  "env": {},
  "healthChecks": [
    {
      "protocol": "HTTP",
      "path": "/trace/api/health"
    }
  ],
  "labels": {
    "traefik.frontend.rule": "PathPrefix:/trace",
    "traefik.backend.loadbalancer.sticky": "true"
  },
  "uris": [ "file:///etc/catsa-anonymous-puller.credentials.tar.gz" ],
  "upgradeStrategy": {
    "minimumHealthCapacity": 0,
    "maximumOverCapacity": 0
  }
}

What did you do?
I try to access my application through traefik with the url http://infra-q-i-mes01:8008/trace/
What did you expect to see?
I expect to see the login webpage of my application trace.
What did you see instead?
I get an HTTP error : 502 Bad Gateway
Just to confirm, the IP address of the trace container <IP_ADDRESS> is indeed not routable. So the problem seems to come from traefik using the IP address provided by marathon instead of the endpoint. Is that normal (in which case do you know of a way to configure marathon to provide the IP address of the Docker host) or is it a bug or configuraton issue with Traefik ? In anycase it seems uncoherent to me as the IP address is the address of the container and the port is the exported port (hence on the Docker host.)
The traefik log
INFO[2017-03-07T11:41:34+01:00] Traefik version v1.2.0-rc2 built on 2017-03-01_01:13:09PM
INFO[2017-03-07T11:41:34+01:00] Using TOML configuration file /root/traefik/conf.toml
DEBU[2017-03-07T11:41:34+01:00] Global configuration loaded   {"GraceTimeOut":10,"Debug":true,"CheckNewVersion":true,"AccessLogsFile":"log/access.log","TraefikLogsFile":"","LogLevel":"DEBUG","EntryPoints":{"http":{"Network":"","Address":"infra-q-i-mes01:8008","TLS":null,"Redirect":null,"Auth":null,"Compress":false}},"Cluster":null,"Constraints":[],"ACME":null,"DefaultEntryPoints":["http"],"ProvidersThrottleDuration":2000000000,"MaxIdleConnsPerHost":200,"InsecureSkipVerify":false,"Retry":null,"Docker":null,"File":null,"Web":{"Address":":8009","CertFile":"","KeyFile":"","ReadOnly":false,"Statistics":{"RecentErrors":10},"Metrics":null,"Auth":null},"Marathon":{"Watch":true,"Filename":"","Constraints":[],"Endpoint":"http://infra-q-i-mes01:8080","Domain":"infra-q-i-mes01","ExposedByDefault":true,"GroupsAsSubDomains":false,"DCOSToken":"","MarathonLBCompatibility":false,"TLS":null,"DialerTimeout":60,"KeepAlive":10,"Basic":null},"Consul":null,"ConsulCatalog":null,"Etcd":null,"Zookeeper":null,"Boltdb":null,"Kubernetes":null,"Mesos":null,"Eureka":null,"ECS":null,"Rancher":null}
INFO[2017-03-07T11:41:34+01:00] Preparing server http &{Network: Address:infra-q-i-mes01:8008 TLS:<nil> Redirect:<nil> Auth:<nil> Compress:false}
INFO[2017-03-07T11:41:34+01:00] Starting provider *provider.Marathon {"Watch":true,"Filename":"","Constraints":[],"Endpoint":"http://infra-q-i-mes01:8080","Domain":"infra-q-i-mes01","ExposedByDefault":true,"GroupsAsSubDomains":false,"DCOSToken":"","MarathonLBCompatibility":false,"TLS":null,"DialerTimeout":60,"KeepAlive":10,"Basic":null}
INFO[2017-03-07T11:41:34+01:00] Starting provider *main.WebProvider {"Address":":8009","CertFile":"","KeyFile":"","ReadOnly":false,"Statistics":{"RecentErrors":10},"Metrics":null,"Auth":null}
INFO[2017-03-07T11:41:34+01:00] 0s
INFO[2017-03-07T11:41:34+01:00] Starting server on infra-q-i-mes01:8008
WARN[2017-03-07T11:41:34+01:00] clientTLS is nil
DEBU[2017-03-07T11:41:34+01:00] Creating frontend frontend-trace
DEBU[2017-03-07T11:41:34+01:00] Wiring frontend frontend-trace to entryPoint http
DEBU[2017-03-07T11:41:34+01:00] Creating route route-host-trace PathPrefix:/trace
DEBU[2017-03-07T11:41:34+01:00] Creating backend backend-trace
DEBU[2017-03-07T11:41:34+01:00] Creating load-balancer wrr
DEBU[2017-03-07T11:41:34+01:00] Sticky session with cookie _TRAEFIK_BACKEND
DEBU[2017-03-07T11:41:34+01:00] Creating server server-trace-8790b0ed-0036-11e7-8a86-0242c8fc4f18 at http://<IP_ADDRESS>:31855 with weight 0
INFO[2017-03-07T11:41:34+01:00] Server configuration reloaded on infra-q-i-mes01:8008
WARN[2017-03-07T11:45:09+01:00] Error forwarding to http://<IP_ADDRESS>:31855, err: dial tcp <IP_ADDRESS>:31855: getsockopt: connection refused

Traefik uses the IP addresses from the application tasks as defined by the task's ipAddresses field. What does that give for you? Can you paste the /task endpoint for your application?
Are you using a real Marathon cluster, or possibly some reduced, local version?

The /task/trace endpoint is below :
{
  "app": {
    "id":"/trace",
    "cmd": null,
    "args": null,
    "user": null,
    "env": {},
    "instances": 1,
    "cpus": 1,
    "mem": 512,
    "disk": 0,
    "gpus": 0,
    "executor": "",
    "constraints": [],
    "uris": ["file:///etc/catsa-anonymous-puller.credentials.tar.gz"],
    "fetch":[
      {
        "uri": "file:///etc/catsa-anonymous-puller.credentials.tar.gz",
        "extract": true,
        "executable": false,
        "cache": false
      }
    ],
    "storeUrls": [],
    "backoffSeconds": 1,
    "backoffFactor": 1.15,
    "maxLaunchDelaySeconds": 3600,
    "container": {
      "type": "DOCKER",
      "volumes": [],
      "docker": {
        "image": "sysadm-reg/assemblage/trace:1.4-20170303.164750-23",
        "network":"BRIDGE",
        "portMappings": [
          {
            "containerPort": 8080,
            "hostPort": 0,
            "servicePort": 10000,
            "protocol": "tcp",
            "name": "tomcat",
            "labels": {}
          }
        ],
        "privileged": false,
        "parameters": [],
        "forcePullImage": true
      }
    },
    "healthChecks": [
      {
        "path": "/trace/api/health",
        "protocol": "HTTP",
        "portIndex": 0,
        "gracePeriodSeconds": 300,
        "intervalSeconds": 60,
        "timeoutSeconds": 20,
        "maxConsecutiveFailures": 3,
        "ignoreHttp1xx": false
      }
    ],
    "readinessChecks": [],
    "dependencies": [],
    "upgradeStrategy": {
      "minimumHealthCapacity": 0,
      "maximumOverCapacity": 0
    },
    "labels": {
      "traefik.frontend.rule": "PathPrefix:/trace",
      "traefik.backend.loadbalancer.sticky": "true"
    },
    "acceptedResourceRoles": null,
    "ipAddress": null,
    "version": "2017-03-03T17:13:55.405Z",
    "residency": null,
    "secrets": {},
    "taskKillGracePeriodSeconds": null,
    "ports": [10000],
    "portDefinitions": [
      {
        "port": 10000,
        "protocol": "tcp",
        "labels": {}
      }
    ],
    "requirePorts": false,
    "versionInfo": {
      "lastScalingAt": "2017-03-03T17:13:55.405Z",
      "lastConfigChangeAt": "2017-03-03T17:13:55.405Z"
    },
    "tasksStaged": 0,
    "tasksRunning": 1,
    "tasksHealthy": 1,
    "tasksUnhealthy": 0,
    "deployments": [],
    "tasks": [
      {
        "id": "trace.8790b0ed-0036-11e7-8a86-0242c8fc4f18",
        "slaveId": "546d7d9b-b7de-4745-8eb8-3c2993b7b300-S0",
        "host": "infra-q-i-mes01",
        "state": "TASK_RUNNING",
        "startedAt": "2017-03-03T17:26:27.815Z",
        "stagedAt": "2017-03-03T17:26:26.074Z",
        "ports": [31855],
        "version": "2017-03-03T17:13:55.405Z",
        "ipAddresses": [
          {
            "ipAddress": "<IP_ADDRESS>",
            "protocol": "IPv4"
          }
        ],
        "appId": "/trace",
        "healthCheckResults": [
          {
            "alive": true,
            "consecutiveFailures": 0,
            "firstSuccess": "2017-03-03T17:27:07.040Z",
            "lastFailure": null,
            "lastSuccess": "2017-03-07T12:32:50.072Z",
            "lastFailureCause": null,
            "taskId": "trace.8790b0ed-0036-11e7-8a86-0242c8fc4f18"
          }
        ]
      }
    ],
    "lastTaskFailure": {
      "appId": "/trace",
      "host": "infra-q-i-mes01",
      "message": "Task was killed since health check failed. Reason: AskTimeoutException: Ask timed out on [Actor[akka://marathon/user/IO-HTTP#-1431489078]] after [20000 ms]. Sender[null] sent message of type \"spray.http.HttpRequest\".",
      "state": "TASK_KILLED",
      "taskId": "trace.c93df68c-0034-11e7-8a86-0242c8fc4f18",
      "timestamp": "2017-03-03T17:25:20.734Z",
      "version": "2017-03-03T17:13:55.405Z",
      "slaveId":"546d7d9b-b7de-4745-8eb8-3c2993b7b300-S0"
    }
  }
}

As of now, the marathon server is unique, with a unique slave. traefik and there 2 processes are all launched on the same machine (infra-q-i-mes01). But there is no specific configuration and it should work pretty much the same way in larger scale...

What I find incoherent is that the address used should either be :

IP or DNS of the host (infra-q-i-mes01) and exposed port (31855)
or the IP or DNS of the container(<IP_ADDRESS>) and the port on the container (8080, but unknown by marathon as much as I can see)

The second solution wouldn't work for us as this IP would not be routable from outside infra-q-i-mes01 but at least I would understand the logic...
Once again, it might be a problem with our configuration of Marathon (as suggested by app.tasks[0].ipAddresses[0].ipAddress not being coherent with app.tasks[0].host) in which case I would be grateful for any suggestions.

I am currently looking at https://github.com/mesosphere/mesos-dns/issues/334 which might give me an insight into the issue...

I tried to use the mesos provider, with the following configuration
[mesos]
endpoint = "infra-q-i-mes01:5050"
watch = true
domain = "infra-q-i-mes01"
RefreshSeconds = 30

(the last line is necessary, see #1248)
In that configuration it worked but with backend urls of the form http://:31721 . I thought this was strange and tried launching traefik on a different server. Then, domain still wasn't specified and consequently it didn't work.
Does that help ?

Apologies for the delay.
I also have been wondering why Traefik uses the container IP address and the public port by default. Chances are this was introduced by a series of changes which aren't coherent anymore. Let's use this ticket to track investigations and possibly drive a change.
You can get to a working state using the Mesos slave host names along with the exposed ports by making a slight modification to the default Marathon template file: Replace
{{getBackendServer . $apps}}
by
{{.Host}}

The workaround you offered works perfectly (although it forces me to manually update the template regularly) . I gather you want me to leave the issue open to follow the longer correction but I thank you profusely for your quick and effective help.
Also, I am available for tests with this as we have a small platform to qualify if we want to have traefik in production.

@lcottereau glad it worked for you. 🚀
And thanks for your offer -- I suppose I'll get back to that once/if we have a correction in place.

OK. Thanks again @timoreimann .

@lcottereau @timoreimann when using docker, the IP address reported by the marathon API might not be reachable due some docker NAT/proxy magic. I don't see a simple way to automatically choose between app.tasks[0].ipAddresses[0].ipAddress and app.tasks[0].host other than a label. If it's OK I might make a pull request to handle this.

As stated above, even if the ipAddress was reachable, the fact that the port used is the exposed port (on the host) would make the result incorrect. It seems to me there is something else at stake here.

@diegooliveira thanks for chiming in, I appreciate it.
@lcottereau AFAICS, the port does not have to be a Docker-exposed port: If you schedule applications other than Docker containers via Marathon, the task port (which Traefik gives you) could be accessible and not be hidden behind a bridging interface like Docker's. There's also the IP-per-task feature in Marathon, which may give you direct access to Docker containers? (Never worked with that mode, so not exactly sure.)
I'm not exactly sure what the motivation for the initial implementation back then was; I'm going to dig  a bit in git history to see if I can find something.
Either way, I think making the host setting configurable through a label so that users can pick what they want to have without having to modify the default template makes sense. Diego, if you'd like to work on that, I'd be happily reviewing any PR you submit.

@timoreimann I'll do that
@lcottereau there are some tests cases for how the marathon provider handles the task port. You might take a look here https://github.com/containous/traefik/blob/master/provider/marathon_test.go#L1000. In this test case there is no one that points to the container port. I think this is in the same condition of choosing the task's host name or IP address. Is it OK to always use the container port or you might point which one to use in a label? If you know the port in advance it's possible to use the traefik.port label.

@diegooliveira in my use case, the issue is rather in the DNS/IP used rather than the port (which would be unroutable from my understanding) and I don't see a test related to this (except maybe TestMarathonGetBackend but its content is not relevant.) Maybe in another test file ?

Regarding the label-based solution, I'm wondering if users would really need to distinguish the host part on a per-application basis frequently. It might seem easier to just introduce a global configuration flag (e.g., host_mode) and honor that during getBackendServer.

@timoreimann the global configuration flag would suit my use case

@diegooliveira Should we take the global config flag route? WDYT?

Hi,
I have a similar problem since I tried to migrate from «camembert» to «morbier». My backend references Docker container IP and not the Marathon endpoint.
I have to postpone the migration due to this regression.
Regards

@Gabitchov @timoreimann did some tests in an environment with and without IP per task and  found some guideline to make an implementation that is more backward compatible, but also adjustable to specific use cases.
In my tests it looks like using the IP address is only relevant when there is an IP-Per-Task application description. I'm planning to work on a patch that uses the hostname if there is no IP-Per-Task information in the application definition, use the task IP if there is one, but allowing to force one specific  behavior with a global marathon configuration.

@diegooliveira I'm mostly positive on your approach. Somewhat of a concern I see is that there might be (non-Docker) applications and networking topologies which do not follow one of the two patterns we've been discussing so far. I'm not too deep into the CNI space, but I know that Mesos supports it and AFAIU it enables very different kinds of networking models, some of which may not be covered by our binary classification. For those cases, however, the manual override should hopefully do the trick.
So 👍 on moving forward with your suggestion.

@Gabitchov If you're fine with making a small modification to the vanilla Marathon template until better auto-detection lands, getting the Marathon provider to speak to hostnames instead of task IP addresses is pretty easy: In line 4, simply replace {{getBackendServer . $apps}} by {{.Host}}. This is how it looks for me:
 url = "{{getProtocol . $apps}}://{{.Host}}:{{getPort . $apps}}"

@timoreimann I have a path ready to fix the unsound behavior, please review it #1345 .

Fix by #1345


IO 1.0.0-M12 leaked out as sbt 1.0 API

https://github.com/sbt/sbt/blob/v1.0.0-RC2/project/Dependencies.scala
  private val ioVersion = "1.0.0-M12"

Any changes that are not bincompat with 1.0.0-M12 needs to be pulled out.

https://github.com/sbt/io/compare/v1.0.0-M12...v1.0.0-M13 This looks like M-13 is still bincompat.

Damn.. http://repo1.maven.org/maven2/org/scala-sbt/main_2.12/1.0.0-RC2/main_2.12-1.0.0-RC2.pom

So, there's nothing to roll back then, right? #50 was part of M12
https://github.com/sbt/io/compare/v1.0.0-M12...1.0.0

Hehe, I used sbt 1.0.0-RC2's Dependencies.scala as my source of truth, so we've been MiMa-ing against 1.0.0-M12: https://github.com/sbt/io/pull/60/files

Cross-linking, this was opened in response to sbt/sbt#3378.


Remove Redux from React Navigation Integration

As of React Navigation 3.x, Redux is not the recommended or even working way to handle storing navigation. So as stated here https://reactnavigation.org/docs/en/redux-integration.html, Redux shouldn't be where we store this stuff for navigation. As such, as brought up in #215, we should Remove Redux from React Navigation Integration in this template / boilerplate.

As the redux integration represents best practices at IR we will not be removing it. You're more than welcome to fork the boilerplate and modify as much as you want and we'd be happy to add it to the list of third party maintained boilerplates. 😄


"Cannot estimate gas; transaction may fail or may require manual gas limit" when deploying the contract

Hello,
I've followed your guide and have reached the point where I have to push the contract on the rinkeby network... when I do the
curl -X POST https://<api>.execute-api.<region>.amazonaws.com/nftapi -H "Content-Type: application/json" -d @deploy.json

I've edited the url of the deploy.json and placed this as url https://gateway.pinata.cloud/ipfs/QmVq2nqVa3NvGTvgBS5iwG8XtwLZ5aKE4ttvn5q1XfjHj5?preview=1
I got the following error
{"Error":{"reason":"cannot estimate gas; transaction may fail or may require manual gas limit","code":"UNPREDICTABLE_GAS_LIMIT","error":{"reason":"cannot estimate gas; transaction may fail or may require manual gas limit","code":"UNPREDICTABLE_GAS_LIMIT","error":{"code":-32000},"method":"estimateGas","transaction":{"from":"0xEC40D5587045346f0D107D746786ADfaa3d7E4D3","maxPriorityFeePerGas":{"type":"BigNumber","hex":"0x9502f900"},"maxFeePerGas":{"type":"BigNumber","hex":"0xba12f2cc"},"data":"<data>","type":2,"maxFeePerGas":{"type":"BigNumber","hex":"0xba12f2cc"},"maxPriorityFeePerGas":{"type":"BigNumber","hex":"0x9502f900"},"nonce":{},"gasLimit":{},"chainId":{}}}}

I've got 1 ETH in my test wallet ... where can I check what's going on?
Thanks

Can you check (perhaps on etherscan.io) if you've added the test eth to the correct wallet. it should be in the sending wallet and not the receiving one which is used for minting. (i,e the wallet associated with the pvt key stored in ssm)
ethers library does not seem to provide better handling for such errors, but from experience, this error is likely because you may have not added token to the correct wallet

Hello,
Yes as you can see i've got the eth here
for what concern the private key I had to use the following script to retrive it
var keythereum = require("keythereum");
var datadir = "C:\\Users\\xxx\\AppData\\Local\\Ethereum\\rinkeby";
var address= "0x1Eccba5f2133bEBD720B291ab269b51ba426Ee66";
const password = "MyPWD!!!";

and I got a string as bab6b0f5cf16287ed6042386f44329a647bb4c9e3772776244484d996fc36c38 is this one I have to put in the SSM?

I got a different error now... no more error on gas fee but got

{"Error":{"code":-32000,"transaction":{"type":2,"chainId":4,"nonce":0,"maxPriorityFeePerGas":{"type":"BigNumber","hex":"0x9502f900"},"maxFeePerGas":{"type":"BigNumber","hex":"0xc58369ea"},"gasPrice":null,"gasLimit":{"type":"BigNumber","hex":"0xc350"},"to":null,"value":{"type":"BigNumber","hex":"0x00"},"data":"","accessList":[],"hash":"0x864a7a6c60192362d842d9d2a407351c2f94814bf82a652ec10823b6d6640ad8","v":0,"r":"0x60a01e3e991f69f1de6a3ec1c8f330b28bad2af0fce157cd121eb4e0025e7220","s":"0x3fb2a4e6d8bfd3ad00b95a323beddac396972935f988e0edc96a6d57fed747e1","from":"0x1Eccba5f2133bEBD720B291ab269b51ba426Ee66","confirmations":0},"transactionHash":"0x864a7a6c60192362d842d9d2a407351c2f94814bf82a652ec10823b6d6640ad8"}}

What is -32000?

Thanks

Debugging ethers library errors is beyond the scope of this activity. I have uploaded a zip file with an utility to create pvt keys and corresponding wallet address under misc/create-eth-wallet.zip.  Please unzip it, and run the shell utility provided to  generate the credentials and then follow instructions

Pravin thanks for your reply, now I'll try your utility, but what I'm
trying to understand is if it's an error on my side (I've followed
literally the tutorial) or if there's something I'm missing
Thanks
On Wed, Feb 9, 2022 at 2:16 PM Pravin Varma @.***>
wrote:

Debugging ethers library errors is beyond the scope of this activity. I
have uploaded a zip file with an utility to create pvt keys and
corresponding wallet address under misc/create-eth-wallet.zip. Please unzip
it, and run the shell utility provided to generate the credentials and then
follow instructions
—
Reply to this email directly, view it on GitHub
https://github.com/aws-samples/nft-deployment-amazon-managed-blockchain/issues/5#issuecomment-1033750641,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABDZBJVEDHSJYWYHIBK4GVDU2JSMPANCNFSM5N2ELNGQ
.
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 authored the thread.Message ID:
<aws-samples/nft-deployment-amazon-managed-blockchain/issues/5/1033750641@
github.com>

Hello @pravinva , using your app to create  private key worked flawlessy
Thanks!

closing issue


Rethinking table model

ATM we have a exact representation of HTML tables.
However, this model is not good to work with.
I have done a spike using a native matrix as a property:
function TableNode() {
  TableNode.super.apply(this, arguments);
}
DataNode.extend(TableNode);

TableNode.static.name = "table";
TableNode.static.defineSchema({
  cells: { type: ["array", "array", "id"], default: [] }
});

Manipulation looks like this:
data.create({
  id: "t1",
  type: "table",
  cells: [
    ['A', 'B', 'C', 'D', 'E'],
    [null, null, null, null, null],
  ]
});
var table = data.get('t1');
data.set(['t1', 'cells', 1, 0], 'foo');

Beyond this, I came to the conclusion, that we need a special operation type for matrix updates. Otherwise we could not resolve concurrent editing situations -- for example a user inserts a row and another inserts a column at the same time: the inserted row needs to be one cell wider than the first user did know.

Matrix Model looks fine to me.

This is being pursued now. Introducing a problem with real-time collab which will be addressed soon.


Add arabic.py

Based on https://meta.wikimedia.org/wiki/Research:Revision_scoring_as_a_service/Word_lists/ar

Current coverage is 81.33%

Merging #235 into master will decrease coverage by -0.18% as of 172bf52

@@            master    #235   diff @@
======================================
  Files          115     116     +1
  Stmts         3095    3102     +7
  Branches         0       0
  Methods          0       0
======================================
  Hit           2523    2523
  Partial          0       0
- Missed         572     579     +7

Review entire Coverage Diff as of 172bf52

Powered by Codecov. Updated on successful CI builds.

Needs some tests.


Input elements should be underlined in red if they are invalid

curently if it's invalid the underline is still gray.

@NessaMr :relaxed:


Added the unit test for mesheryctl system restart command

Signed-off-by: Shreyas220<EMAIL_ADDRESS>Description
Added the unit test for mesheryctl system restart command
This PR fixes #3407
Signed commits

[x] Yes, I signed my commits.

Unit tests!! Yes, please. 🙂

Codecov Report

Merging #3858 (ac421a0) into master (a762128) will decrease coverage by 7.47%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3858      +/-   ##
==========================================
- Coverage   23.82%   16.34%   -7.48%
==========================================
  Files          53       53
  Lines        4252     4252
==========================================
- Hits         1013      695     -318
- Misses       2963     3379     +416
+ Partials      276      178      -98

Flag
Coverage Δ

gointegrationtests
?

unittests
16.34% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

mesheryctl/internal/cli/root/system/status.go
0.00% <0.00%> (-62.83%)
:arrow_down:

mesheryctl/internal/cli/root/system/start.go
1.11% <0.00%> (-52.97%)
:arrow_down:

mesheryctl/internal/cli/root/system/stop.go
0.90% <0.00%> (-39.10%)
:arrow_down:

mesheryctl/internal/cli/root/system/check.go
1.39% <0.00%> (-22.38%)
:arrow_down:

mesheryctl/internal/cli/root/system/logs.go
0.00% <0.00%> (-21.60%)
:arrow_down:

Continue to review full report at Codecov.

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

@piyushsingariya little help needed


Unexpected token {

🐛 Bug Report
When I try to run the test, I get the following error:
(function (exports, require, module, __filename, __dirname) { import { configure } from "enzyme";
SyntaxError: Unexpected token {

It has to be because it cannot handle ES6 syntax, but I've tried everything I could find on the web to tackle this issue but none of them worked (setting NODE_ENV=test, using babel-jest, setting env modules to commonjs, ...).
To Reproduce
package.json
"devDependencies": {
    "@babel/core": "^7.4.5",
    "@babel/node": "^7.0.0",
    "@babel/plugin-proposal-class-properties": "^7.4.4",
    "@babel/preset-env": "^7.1.6",
    "@babel/preset-react": "^7.0.0",
    "babel-jest": "24.8.0",
    "enzyme": "^3.10.0",
    "enzyme-adapter-react-16": "^1.14.0",
    "jest": "^24.8.0",
    "react": "^16.6.3",
    "react-dom": "^16.6.3",
    "react-test-renderer": "^16.8.6",
},
"scripts": {
    "test": "jest"
}
"jest": {
    "setupTestFrameworkScriptFile": "<rootDir>/jest.config.js",
    "collectCoverage": true,
    "testEnvironment": "node"
}

.babelrc
{
  "plugins": ["@babel/plugin-proposal-class-properties"],
  "presets": ["@babel/preset-env", ["@babel/preset-react", {
    "throwIfNamespace": false
  }]]
}

jest.config.js
import { configure } from "enzyme";
import Adapter from "enzyme-adapter-react-16";

configure({ adapter: new Adapter() });

and run npm test
Expected behavior
To be able to get the tests working with ES6 syntax.
Run npx envinfo --preset jest
System:
    OS: macOS 10.14.4
    CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
  Binaries:
    Node: 10.16.0 - ~/.nvm/versions/node/v10.16.0/bin/node
    Yarn: 1.16.0 - /usr/local/bin/yarn
    npm: 6.9.0 - ~/.nvm/versions/node/v10.16.0/bin/npm
  npmPackages:
    jest: ^24.8.0 => 24.8.0

jest.config.js itself is not transpiled. Also, it is not recommended to have both a config file and package.json config and to do side effects like yours in the config

I was on the wrong path with my setup. Thanks for the insight.

you should use babel.config.js not .babelrc


[ADD ME TO THE ORGANIZATION]

Name:  NhanAZ
Location: Vietnam
Interest: Backend development
Why do you want to join?

I want to join because i want to join the community to develop myself

@NhanAZ Do you want to join the org?

No Tks


Forward ncurses/wide feature

Adding the "wide" feature should still work when building on windows.

Thanks for the pull request


Pull request for Easy Issue (C)

Description
The issue is from issues/448 where it was ask to make a program that had a sum function with this prototype ìnt sum(int a, int b);.

Sum Function Behavior:
The function should return the sum of a and b.
Program Behavior:

Prompt the user to enter two integers.
Read these integers using scanf.
Call the sum function to get the sum.
Print the result using printf.

I added two function :

int sum(int a, int b) : A simple sum of a and b with the + opperator
int sum_without_plus(int a, int b) : A sum without the + opperator. It use pointer addresse. I won't try to explain it as I don't fully understand it.

Description
The issue is from issues/448 where it was ask to make a program that had a sum function with this prototype ìnt sum(int a, int b);.
Sum Function Behavior: The function should return the sum of a and b.
Program Behavior:
* Prompt the user to enter two integers.

* Read these integers using scanf.

* Call the sum function to get the sum.

* Print the result using printf.

I added two function :
* `int sum(int a, int b)` : A simple sum of a and b with the + opperator

* `int sum_without_plus(int a, int b)` : A sum without the + opperator. It use pointer addresse. I won't try to explain it as I don't fully understand it.

Looks good, well done!

Merged

This is an automated message from Fork, Commit, Merge [BOT].

Thank you for your contribution! Your pull request has been merged. The files have been reset for the next contributor.
What's next?
If you're looking for more ways to contribute, I invite you to check out my other projects. Just click here to find more. These projects contain real issues that you can help resolve. You can also check out the Influences section in the README to find more projects similar to this one.
Also please leave a star to this project if you feel it helped you, i would really appreciate it.
I look forward to seeing your contributions!


[WIP] Add --notes flag (rebased)

This is a rebased version of #383 that then goes on to implement some half-complete features after the last rebase.
Ugh, I really wish you hadn't rebased initially @joelostblom; I think I'm redoing some of what you did here.
Edit: renaming this to WIP because the straight up squashing didn't work here either and a lot of previous commits got squashed.... somehow.

Sorry but I don't understand your comment. The original PR (https://github.com/TailorDev/Watson/pull/337) was out of sync with the master branch. You can't merge PRs that are out of sync with the branch you're merging them into, and often the best solution is to rebase. But you don't need to use my rebase if you think something was messed up there, you can start from #337 directly. I'm happy for this functionality to be added in any PR but glancing at your changes here, I don't understand why you have e.g. removed the addition of support for Python 3.8 and 3.9 from master and modified an additional 15 files compared to #383 .

Hey, sorry I'm still trying to fight with git here. I just checked the history and it looks like the complications started before your last rebase, maybe due to merge commits? In fact, I see you merged master into the PR branch to sync them instead of rebase.
I'm somewhat more familiar with another style of updating PRs where we avoid merge commits in the PR branch, thus there's a linear history on top of the last commit from master. I'm sorry if I'm not able to understand the commit structure in this project and wrongly mentioned you here.

No worries and thanks for clarifying!

@aero31aero As you may have noticed, we now use a linear history and avoid merge commits. :wink:

Glad to know that. :D
BTW I just rebased this PR to latest master and I'm now fixing the tests. Is there any merge blocker here I should know of?


fn: lb-agent: Add Runner Scheduler/Execution Stats

LB agent reports lb placer latency. It should also report
how long it took for the runner to initiate the call as
well as execution time inside the container if the runner
has accepted (committed) to the call.

@kmjohansen Parse failures that return empty objecjs should fail the time.Time.IsZero() checks and should be ignored.


Fix: new V3 release using default values

Changes

This changes the default value of TillerNS to be the same as the configured "namespace" value.
I modified the logic to check if running Convert is required by checking if there's at least one Configmap for v2 release, with this the first time is run, it will check in the same namespace, by default, if there are v2 releases and if not will skip conversion entirely.

Here are a set of user stories that explain the reasoning behind the change and the required actions on the user side if required. In all cases, the users will use the following drone step example:
- name: deploy
  image: quay.io/mongodb/drone-helm:v3
  settings:
    chart: <CHART>
    chart_version: <CHART_VERSION>
    namespace: <NAMESPACE>
    release: <APP>
    api_server: <API_SERVER>
    kubernetes_token:
      from_secret: <SECRET>
  when:
    event:
    - push

1. I'm a user that wants to deploy a brand new helm v3 release in the "myns" namespace.
Before this change

User fills up the values on the example template: replaces  with "myns"
The plugin will use the default value for TillerNS that is "kube-system"
The plugin will verify that there's no V3 release so it will continue with the convert procedure, trying to find v2 releases to migrate
The plugin will try to fetch Configmaps related to V2 releases in the TillerNS namespace
The plugin fails as the Service Account that the users can use have no permissions in kube-system
The user recives an error and the deployment fails

Possible mitigations without the current change

Disable convert process with: disable_v2_convert: true
Manually set TillerNS value equal to the namespace value

After this change
The default value for TillerNS is the same as the configured namespace so there won't be permission errors.
In our case that we have a Tiller service per namespace, having this default value makes more sense and in this way users won't need to specify a deprecated setting (TillerNS), if they are deploying a new V3 release from scratch.
2. I'm a cluster admin and want to deploy a new V3 release in the namespace "myadmin" using tiller running in kube-system
Before this change
No change from default template values as TillerNS defaults to kube-system
New deployments will still fail because the code runs the Convert method regardless of there being V2 Configmaps or not.
After this change

Disable convert process with: disable_v2_convert: true
Manually set TillerNS value to "kube-system"

Why for the cluster admin user story do we need to disable the v2 convert?

That would be one way to fully skip the Convert logic that at the end is not required here


fix: closes response on async consumption

Why
Not closing response on async complete might lead to resource leaks
Description
Fixes response handling on Async executes.
Checklist

[x] I followed the contribution guidelines.
[ ] I created an issue and used it in the commit message.
[x] I have built the project locally prior to submission with mvn clean install.
[x] I kept a clean commit log (no unnecessary commits, no merge commits).
[x] I am happy with my contribution.

Ike Plugins (test-keeper)
Thank you @bartoszmajsak for this contribution!

It appears that no tests have been added or updated in this PR.
Automated tests give us confidence in shipping reliable software. Please add some as part of this change.
If you are an admin or the reviewer of this PR and you are sure that no test is needed then you can use the command /ok-without-tests as a comment to make the status green.
For more information please head over to official documentation. You can find there how to configure the plugin.

Defeated by my own bot :D @gastaldi we do have coverage for both of these methods - do you think we need some boundary cases here?


Buttons get clicked when the mouse is pressed outside the button and then dragged into the button area.

How to reproduce:

Press the mouse button outside any widget button area.
Drag the mouse (with the mouse button still pressed) into a widget button num. 1 area.
Observe that the onClick function is called for button num. 1.
With the mouse button still pressed keep dragging into another button.
Observe that the onClick function is called for button num. 2.

Video illustrating the issue

hhhmmmmm that's  a problem

I just realised this is a larger issue dealing with how the program handles mouse input. I'm currently in the process of fixing this. This will change the use of the program, unfortunately, so will probably in be a new release (v1.0.0).

I was going to file another issue, but I think it is probably related to this one.
If I click on an item of a dropdown menu and another widget is positioned behind the dropped dropdown menu, the widget behind also gets clicked.
The workaround I did was to hide the button that was getting clicked while the dropdown is dropped and then show the hidden button once the dropdown is no longer dropped.

perhaps the best way is to implement a layer-ish way of displaying the widgets aka putting them in an ordered list. Then search from the end which widget have been clicked on

perhaps the best way is to implement a layer-ish way of displaying the widgets aka putting them in an ordered list. Then search from the end which widget have been clicked on

@AustL is that's the case we need to implement a new Window class that handle this
like this perhaps
class Window:
    def __init__(self, size) -> None:
        self.__widgets = list()

    def _add_widgets(self, new_widget, pos =None):
        """add widget to the window

        :param new_widget: the new widget to add to 'self'
        :type new_widget: widget
        :param pos: position of the widget in the list, defaults to None
        :type pos: intor None, optional
        """
        self.__widgets.append(new_widget)

    def close(self):
        pass # close the window

@slashformotion I've already started doing this. Most of this will occur automatically, so changes to the usage will be minimal.

@AustL i looked the branch, it's pretty smart

I was going to file another issue, but I think it is probably related to this one.
If I click on an item of a dropdown menu and another widget is positioned behind the dropped dropdown menu, the widget behind also gets clicked.
The workaround I did was to hide the button that was getting clicked while the dropdown is dropped and then show the hidden button once the dropdown is no longer dropped.

This issue is fixed for the dropdown, however, it still occurs for the combobox widget. This is due to the combobox being triggered on 'click', while the dropdown is triggered on 'release'. Based on the implementation of the combo-box, I can't find an easy fix. I think when the dropdown menu closes, the mouse click somehow still registers for the button, although it does not when one widget covers another (like two buttons overlapping).

The mouse and widget handling system is now working, so I will create a beta-release until I can document it properly.


In-app Report for v1.56 on darwin

Behavior observed:
Internal error while creating updates: 'category'
Expected behavior:
less 2022-12-15_22-49-38.log
2022-12-15 22:49:38,914 INFO main: Running version 1.56
2022-12-15 22:52:15,385 INFO mintamazontagger.mintclient: You may be asked for an auth code at the command line! Be sure to press ENTER after typing the 6 digit code.
2022-12-15 22:52:15,386 INFO main: Creating a new webdriver
2022-12-15 22:52:17,421 INFO mintamazontagger.mintclient: Mint Login Flow: Navigating to Mint homepage.
2022-12-15 22:52:18,579 INFO mintamazontagger.mintclient: Mint Login Flow: Clicking "Sign in" button.
2022-12-15 22:52:19,772 INFO mintamazontagger.mintclient: Mint Login Flow: login to be performed by user
2022-12-15 22:52:20,417 INFO mintamazontagger.mintclient: Mint Login Flow: login to be performed by user
2022-12-15 22:52:21,677 INFO mintamazontagger.mintclient: Mint Login Flow: login to be performed by user
2022-12-15 22:52:22,274 INFO mintamazontagger.mintclient: Mint Login Flow: login to be performed by user
2022-12-15 22:52:23,681 INFO mintamazontagger.mintclient: Mint Login Flow: login to be performed by user
2022-12-15 22:52:24,686 INFO mintamazontagger.mintclient: Mint Login Flow: login to be performed by user
2022-12-15 22:52:26,065 INFO mintamazontagger.mintclient: Mint Login Flow: login to be performed by user
2022-12-15 22:52:27,427 INFO mintamazontagger.mintclient: Mint Login Flow: login to be performed by user
2022-12-15 22:52:28,296 INFO mintamazontagger.mintclient: Mint Login Flow: login to be performed by user
2022-12-15 22:52:28,799 INFO mintamazontagger.mintclient: Mint Login Flow: login to be performed by user
2022-12-15 22:52:29,538 INFO mintamazontagger.mintclient: Mint Login Flow: login to be performed by user
2022-12-15 22:52:30,268 INFO mintamazontagger.mintclient: Mint Login Flow: login to be performed by user
2022-12-15 22:52:31,240 INFO mintamazontagger.mintclient: Mint Login Flow: login to be performed by user
2022-12-15 22:52:31,892 INFO mintamazontagger.mintclient: Mint Login Flow: login to be performed by user
2022-12-15 22:52:32,480 INFO mintamazontagger.mintclient: Mint Login Flow: login to be performed by user
2022-12-15 22:52:33,357 INFO mintamazontagger.mintclient: Mint Login Flow: login successful.
2022-12-15 22:52:33,357 INFO mintamazontagger.mintclient: Waiting for Mint Overview
2022-12-15 22:52:40,408 INFO mintamazontagger.mintclient: Mint overview loaded
2022-12-15 22:52:40,409 INFO mintamazontagger.mintclient: Getting Mint categories.
2022-12-15 22:52:41,301 INFO mintamazontagger.mintclient: Getting all Mint transactions since 2021-01-20 to None.
2022-12-15 22:52:43,858 ERROR main: Internal error while creating updates: 'category'
Traceback (most recent call last):
File "mintamazontagger/main.py", line 653, in create_updates
File "mintamazontagger/main.py", line 709, in do_create_updates
File "mintamazontagger/tagger.py", line 141, in create_updates
File "mintamazontagger/mint.py", line 158, in parse_from_json
File "mintamazontagger/mint.py", line 101, in init
File "mintamazontagger/mint.py", line 60, in pythonify_mint_transaction_dict
KeyError: 'category'
2022-12-15 22:52:43,858 ERROR main: Internal error while creating updates: 'category'
2022-12-15 22:53:08,871 INFO main: Report Issue Clicked
~

Also seeing this with the new 1.57 release (I just grabbed the DMG and manually imported Amazon CSV files).

Please try again with version 1.59 and report your logs here. Please review first and redact any PII before posting. Thanks

@jprouty  It was getting tripped up on a Mortgage payment transaction. I hid that account and it worked. I replaced PII with X's
2023-02-01 11:07:53,162 INFO mintamazontagger.mintclient: Getting all Mint transactions since 2022-08-13 to None.
2023-02-01 11:07:54,189 CRITICAL mintamazontagger.mint: No category for mint transaction: {'type': 'LoanTransaction', 'principal': XX, 'principalCurrency': 'USD', 'interest': XX, 'interestCurrency': 'USD', 'escrow': XX, 'escrowCurrency': 'USD', 'metaData': {'lastUpdatedDate': '2022-11-16T12:21:39Z', 'link': [{'otherAttributes': {}, 'href': '/v1/transactions/XX’, 'rel': 'self'}]}, 'id': ‘XX’, 'accountId': ‘XX’, 'accountRef': {'id': ‘XX’, 'name': ‘XXXXX’, 'type': 'LoanAccount', 'hiddenFromPlanningAndTrends': False}, 'date': datetime.date(2022, 11, 15), 'description': 'PAYMENT', 'amount': XX, 'currency': 'USD', 'status': 'POSTED', 'matchState': 'NOT_MATCHED', 'fiData': {'id': '2022-11-15_1', 'date': '2022-11-15', 'amount': XX, 'description': 'PAYMENT', 'inferredDescription': 'PAYMENT'}, 'isReviewed': False, 'transactionType': 'CREDIT', 'etag': ‘XX’, 'isExpense': False, 'isPending': False, 'discretionaryType': 'NONE', 'isLinkedToRule': False, 'transactionReviewState': 'UNREVIEWED'}
2023-02-01 11:07:54,189 ERROR main: Internal error while creating updates: 'category'

Oh interesting. And what category is/was shown in the Mint UI? Possibly "Uncategorized"?

@iansewell, gentle ping on the follow-up question above. Thanks.

Yes, it was uncategorized.  Sorry for the delayed response.
I'm running into a new problem now. with 1.62.
Not sure you care since we have days left for this app :(
2023-03-03 16:09:23,553 ERROR main: Internal error while creating updates: 'inferredCategory'
Traceback (most recent call last):
File "mintamazontagger/main.py", line 693, in create_updates
File "mintamazontagger/main.py", line 750, in do_create_updates
File "mintamazontagger/tagger.py", line 141, in create_updates
File "mintamazontagger/mint.py", line 162, in parse_from_json
File "mintamazontagger/mint.py", line 105, in init
File "mintamazontagger/mint.py", line 65, in pythonify_mint_transaction_dict
File "mintamazontagger/mint.py", line 209, in init
File "mintamazontagger/mint.py", line 60, in pythonify_mint_transaction_dict
KeyError: 'inferredCategory'
2023-03-03 16:09:23,554 ERROR main: Internal error while creating updates: 'inferredCategory'
2023-03-03 16:09:25,663 INFO main: Report Issue Clicked
I've tried selecting everything in the UI: Do not predict cat, Do not tag cat, I added a category filter, nothing seems to help :(

I have a fix that should resolve this in 1.65. Thanks.


docs(lang): Add Italian translation to the docs 🇮🇹📖

Hi there 👋🏼
I've been using this package since its early days and thought it was time for me to help pay back all hours it saved me.
I took the liberty of translating these docs in Italian and while I was at it, fixed up some minor inconsistencies and typos here and there (hopefully that's okay).
If anything needs changing, just let me know!

Thank you for doing this! You make me feel bad about some of the docs you translated being out-of-date 😬 , but the vast majority is still relevant

No worries! And there's no need to feel bad at all. I understand how challenging can be to keep the docs up-to-date with all the constant changes.
I'll keep an eye out for future updates, and am more than happy to adjust the translation as needed.
Keep up the great work! 👍🏼🚀


It's dead

https://github.com/telephone/LookingGlass#nginx
The following link is dead.
http://www.tautt.com/best-nginx-configuration-for-security/?from=@
https://i.imgur.com/mgOGIbu.png

If anyone is having trouble with mtr or trace running here is the fix:
nano /etc/php/7.4/fpm/php.ini
or
nano /etc/php.ini
add or edit
max_execution_time = 300
request_terminate_timeout = 300
systemctl restart php7.4-fpm.service


Fix indentation and removed semi-colons from lines and redid the dP_GG description

This commit reformats the inputs and outputs description of the dP_GG function. It also changes the output from kPa to Pa.
Fixed indention for windows.
Removed semi-colons from dP_Zu.
Reformed output to provide pressure drop in Pa and not kPa.
Fixed spacing and remove extra lines.

Also, made some changes to the master_example.py file.

Worth noting the dP_Zu gives a different answer than stated.


Fixed #28248 -- Fixed password reset tokens being valid for 1 day longer than PASSWORD_RESET_TIMEOUT_DAYS.

https://code.djangoproject.com/ticket/28248

I believe this change is incorrect and should be reverted, according to a common sense interpretation of the setting.
The code rounds all timestamps to midnight (server time) providing a resolution of only 1 day. So if you generate a links 5 minutes before midnight and try to use it 6 minutes later, that counts as 1 day. With the current code, if you set the timeout setting to 1 day, such a link would be rejected.
In other words, new code interprets timeout of 1 day as "up to one day, could be almost zero". The old way interpreted as "at least 1day, could be up to 2". I think the old way was better, much less likely to be an accidental usability issue. There is virtually no security concern with being too generous here (see my latest post on django-devs on related issue).


fix clientId issue

This should fix https://github.com/mcollina/aedes-persistence-redis/pull/34 tests

@mcollina Can you release this as 5.0.1 ?

Can you add a unit test for this?

child persistences were failing, This already makes them pass.


[QUESTION] Url parameters in nested routers?

I'm developing a public api where we'll probably want to nest routes at least a couple of levels deep, using the initial route to determine the 'app' that the rest of the content belongs to.
our target url structure is along the lines of
/api/v1/apps/{shortcode}
/api/v1/apps/{shortcode}/people/
/api/v1/apps/{shortcode}/people/{id}
etc. etc...
I'd really like to take advantage of the APIRouter classes to do this as we're likely to have a lot of endpoints and models but I can't find a way to ensure the 'shortcode' parameter here is passed to child routers, is there any way to do that?
currently I'm doing stuff like this:
app.py
from app.people.routes import router as people_router
from app.routes import router as main_router

app = FastAPI()
app.debug = settings.DEBUG

main_router.include_router(people_router, prefix='/{shortcode}/people')
app.include_router(main_router, prefix='/apps')

This works ok, but the {shortcode} parameter is not included in the auto-generated documentation ( though it is available in the view functions ). I'd rather not have to define every view function individually with prefixed like @router.route('/{shortcode}/people/{id}) ... if I can avoid it somehow?

Hmm, interesting. I hadn't seen a use case like this, let's see...
Are you declaring a parameter shortcode in each one of those path operation functions? Are you declaring it with a specific Python type?

Thanks for looking at this :) Yeah the idea would be that all the 'sub-routers' would need access to the {shortcode} parameter to be able to perform initial database filtering of their content type.
it would be declared just as a str type, however it could be useful to be able to wrap it in a Depends() to be able to retrieve an actual model in the views where we know we'll need to query it from the database along with the actual content for that view

I've gotten around this for now by just declaring the whole url path including the {shortcode} parameter in the sub routers and attaching them at the app root. This works ok for the moment and is no great loss but I can imagine this may be useful further down the line for much larger url structures.

I see how this could be useful.
I'll have to check it to debug it and see what's blocking it and how feasible it would be to support it.

I see how this could be useful.
I'll have to check it to debug it and see what's blocking it and how feasible it would be to support it.

how is it going ? it's very import concept for restful  nested resources.

@bharling I just added tests for this specific use case in #349, I see it working as expected.
And I see it documented on the API docs:

Please check with a recent version and let me know if you still have any problem.

Ah great thankyou I'll give it a try

@tiangolo This is mostly great thanks - I can see the url parameters appearing in my routes now and all kind of checks out apart from the rendering of the documentation - it seems to be doubling up all the routes. I expect I'm doing something wrong - here's a screenshot of what I see in the docs ( both redoc and swagger versions have the same issue )

The 'People' endpoints there are also all duplicated under a 'People' tag below that app list.
Here's the code I'm using to build the routing at the app level
# we prefix with the api version number
v1_router = APIRouter()

# /v1/apps/{shortcode}/people/
app_detail_router.include_router(people_router, tags=['People'], prefix='/people')

# /v1/apps/{shortcode} - App Detail ( and all app sub routes )
app_list_router.include_router(app_detail_router, prefix='/{shortcode}', tags=['App'])

# /v1/apps - Apps List
v1_router.include_router(app_list_router, tags=['App'], prefix='/apps')

# /v1
app.include_router(v1_router, prefix='/v1')

app.include_router(auth_router, tags=['Authentication'])

UPDATE:
Following the pattern below works well though however. Doing the below is fine for my purposes definitely. I think my initial issue was because of nesting tagged routes which may actually be a misuse of the openapi spec perhaps anyhow.
example_router = APIRouter()

@example_router.get('/example')
def example_get(shortcode:str):
    return {'shortcode': shortcode }

@example_router.get('/example/{id}')
def example_detail(shortcode:str, id:int):
    return {'shortcode': shortcode, 'id': id}

v1_router = APIRouter()
v1_router.include_router(auth_router, tags=['Authentication'])
v1_router.include_router(app_router, tags=['Apps'])
v1_router.include_router(images_router, tags=['Images'], prefix='/{shortcode}')
v1_router.include_router(people_router, tags=['People'], prefix='/{shortcode}')
v1_router.include_router(example_router, tags=['Example'], prefix='/{shortcode}')

app.include_router(v1_router, prefix='/v1/apps')

I'd be happy to close this now on the basis that the above works for me, but maybe others may have input.

Great, thanks for reporting back and closing the issue.
Having multiple tags is actually not a misuse of the spec, but the IU and code generation tools tend to assume that each path operation appears only in one tag, or that it's ok for them to appear with each tag 🤷♂😅... There might be cases where you want a path operation to appear in different tags.
But ReDoc showing them multiple times instead of once with all the independent tags seems like a ReDoc bug.

I'd like to add to this seeing as how I can't figure out how to get this to work properly. Let's say I have an API as follows:
GET /board - Lists all board entries
POST /board - Adds a new board entry
GET /board/{board_id} - Gets a specific board entry
GET /board/{board_id}/defect - Gets all defects related to the specified board
POST /board/{board_id}/defect - Adds a new defect entry to the specified board
GET /board/{board_id}/defect/{defect_id} - Gets the specified defect belonging to the specified board
This is pretty much core REST API design, and I would expect to be able to dig down to an arbitrary depth in the same way, where each path parameter identifies the preceding resource in the path, but I don't really see from the description above or the documentation how to achieve this. If I try for example to do
api_router.include_router(boards.router, prefix="/board", tags=["board"])
api_router.include_router(boards.router, prefix="/board/{board_id}", tags=["board"])
@router.get("/", response_model=List[Board])
def read_boards():
return crud.boards.getAll()
@router.get("/", response_model=Board)
def read_board(boardId):
return crud.boards.getOne(board_id)
then doing a GET on /board/15 will assume I am trying to reach "getAll()" and going for a deeper resource (defect) won't work at all.
Cheers

@BobRob77 Were you able to figure out how to accomplish this?

@BobRob77 @JosephCW
Late to the party, but shouldn't  the second .get have a different path?
.get("/{boardId}") I presume.