Unify Typechecking of list/Sequence and set/dict

closes #46
closes #5

re-implement checking of list.
sequence now also uses the interface infrastructure, this leads to lazy checking and accepting own classes. (Treated as Protocol)
adapt unit tests

There is a regression on  marking of  the context-part.
It also addresses #5,  but in an ugly fashion. So I am unsure if this should be merged before #5 is properly addressed.

...
def appendSomething(l1: set[int], l2: set[int]) -> None:
    l1.add("foo")

appendSomething(set(), set())

currently yields
context: appendSomething(l1: set[int], l2: set[int]) -> None
                             ^^^^^^^^
declared at: ex15.py:4
caused by: ex15.py:7
  | appendSomething(set(), set())

given:    'foo'
expected: value of type ~I=int

context: add(self: Self, other: ~I=int) -> None
                                ^^^^^^
declared at: ex15.py:4
caused by: ex15.py:5
  |     l1.add("foo")

I resolved the merge conflicts with master.
I think this branch should be merged, as it improves code uniformity and it also addresses #5.
set, dict & Sequence all get slightly better error messages.
Only list has small regressions:
expected: value of type str

context: foo(l: list[Callable[[], str]]) -> list[str]
                                  ^^^
....

vs now:
expected: value of type str

context: foo(l: list[Callable[[], str]]) -> list[str]
                 ^^^^^^^^^^^^^^^^^^^^^^^
...

See https://github.com/skogsbaer/write-your-python-program/pull/64/files?diff=split&w=0 (bottom) for more examples.


AnimationPlayer Bug, animation wrong angles  in some cases (example in)

(maybe this is .gltf import bug)
Godot version:
3.1.1 stable
OS/device including version:
Linux
Issue description:
Look screenshot, loading non-first animation make animation play in wrong angles
Loading first animation for just one single frame, make everything work.
I dont thing this is "as expected", maybe bug I think.
This bug happened in other big animations, not just this.
Steps to reproduce:
download this (sketchfab link)
(or my example project include this model)
launch its animation by script
get_node("AnimationPlayer").play("05_Sphere_bot_WalkCycle")
it will be broken, but launching
get_node("AnimationPlayer").play("01_Sphere_bot_Roll")
for 1 frame, fix it
Minimal reproduction project:
https://danilw.github.io/godot-utils-and-other/BUG_animation_player/BUG_animation_player.zip

Looks fine in 3.2.3 rc5


Probably a modbus issue, brought about by Core 2024.10

A compelling case not to upgrade core again, given the amount of times someone messes with python. I expect a fix will appear in due course but otherwise is there a tweak to the solis yaml possible to make it better resist whatever the problem is?
Since CORE 2024.10 (.1, .2) I now find that all of my solis sensors become unavailable on random occasions and the logs show no response after a number of retries. One goes and the rest follow in sequence. This normally resolves itself after a few minutes but can drop again not long after. It’s not clear to me whenever reloading modbus/restarting has a better effect than just waiting for time to pass.
Log entries:
Logger: pymodbus.logging
Source: runner.py:189
First occurred: 12 October 2024 at 22:44:41 (83 occurrences)
Last logged: 06:43:15

Failed to connect [Errno 111] Connect call failed ('192.168.1.xxx, 502)
Failed to connect
Unable to decode response Modbus Error: Unknown response 0
Failed to connect [Errno 113] Connect call failed ('192.168.1.xxx', 502)

Logger: homeassistant.components.modbus.modbus
Source: components/modbus/modbus.py:331
integration: Modbus ([documentation](https://www.home-assistant.io/integrations/modbus), [issues](https://github.com/home-assistant/core/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+modbus%22))
First occurred: 12 October 2024 at 22:44:40 (41 occurrences)
Last logged: 06:42:44

Pymodbus: solis: Error: device: 1 address: 43167 -> Modbus Error: [Input/Output] ERROR: No response received after 3 retries
Pymodbus: solis: Error: device: 1 address: 33079 -> Modbus Error: [Input/Output] ERROR: No response received after 3 retries
Pymodbus: solis: Error: device: 1 address: 43155 -> Modbus Error: [Input/Output] ERROR: No response received after 3 retries
Pymodbus: solis: Error: device: 1 address: 43169 -> Modbus Error: [Input/Output] ERROR: No response received after 3 retries
Pymodbus: solis: Error: device: 1 address: 33282 -> Modbus Error: [Input/Output] ERROR: No response received after 3 retries

Logger: homeassistant.components.modbus.entity
Source: components/modbus/entity.py:241
integration: Modbus ([documentation](https://www.home-assistant.io/integrations/modbus), [issues](https://github.com/home-assistant/core/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+modbus%22))
First occurred: 00:16:12 (4 occurrences)
Last logged: 05:58:23

Received 2 bytes, unpack error unpack requires a buffer of 4 bytes
Received 4 bytes, unpack error unpack requires a buffer of 2 bytes

Though I've now added in the delay/timeout from [Issue 24] to solis.yaml (https://github.com/fboundy/ha_solis_modbus/issues/24#issuecomment-2109545038)
  delay: 5
  message_wait_milliseconds: 100
  timeout: 5

I'll report back if that fixes things (and if CORE is just not being patient is the issue).

Seemingly stabilised now having increased the timeout (though I'm on HA Core 2024.10.3 and reluctant to make another update).  Whether this is all circumstantial... who knows!
  delay: 10
  message_wait_milliseconds: 100
  timeout: 15

Be aware that the 4B HMI update to the inverter changes everything!
I will be working through a lot of updates to 3 of 4 integrations as a result…
On 20 Nov 2024 at 21:00 +0000, Paulholloway @.***>, wrote:

Seemingly stabilised now having increased the timeout (though I'm on HA Core 2024.10.3 and reluctant to make another update). Whether this is all circumstantial... who knows!
delay: 10
message_wait_milliseconds: 100
timeout: 15
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

To confirm - are these just the latest physical inverters or is this a software update to the existing stock?On 20 Nov 2024, at 21:48, fboundy @.***> wrote:
Be aware that the 4B HMI update to the inverter changes everything!
I will be working through a lot of updates to 3 of 4 integrations as a result…
On 20 Nov 2024 at 21:00 +0000, Paulholloway @.***>, wrote:

Seemingly stabilised now having increased the timeout (though I'm on HA Core 2024.10.3 and reluctant to make another update). Whether this is all circumstantial... who knows!

delay: 10

message_wait_milliseconds: 100

timeout: 15

—

Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.***>

Good job the modbus effectively closes the connection to SolisCloud etc. Hopefully you’ve a plan to overcome this?Sent from my iPhoneOn 21 Nov 2024, at 07:43, fboundy @.***> wrote:
It’s an update that was pushed to my 2 year old inverter this week by Solis while they were fixing something else
On 21 Nov 2024 at 06:19 +0000, Paulholloway @.***>, wrote:

To confirm - are these just the latest physical inverters or is this a software update to the existing stock?On 20 Nov 2024, at 21:48, fboundy @.***> wrote:

Be aware that the 4B HMI update to the inverter changes everything!

I will be working through a lot of updates to 3 of 4 integrations as a result…

On 20 Nov 2024 at 21:00 +0000, Paulholloway @.***>, wrote:

Seemingly stabilised now having increased the timeout (though I'm on HA Core 2024.10.3 and reluctant to make another update). Whether this is all circumstantial... who knows!

delay: 10

message_wait_milliseconds: 100

timeout: 15

—

Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.***>

—

Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you commented.Message ID: @.***>

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.***>

Working on it
On 21 Nov 2024 at 14:29 +0000, Paulholloway @.***>, wrote:

Good job the modbus effectively closes the connection to SolisCloud etc. Hopefully you’ve a plan to overcome this?Sent from my iPhoneOn 21 Nov 2024, at 07:43, fboundy @.***> wrote:
It’s an update that was pushed to my 2 year old inverter this week by Solis while they were fixing something else
On 21 Nov 2024 at 06:19 +0000, Paulholloway @.***>, wrote:

To confirm - are these just the latest physical inverters or is this a software update to the existing stock?On 20 Nov 2024, at 21:48, fboundy @.***> wrote:

Be aware that the 4B HMI update to the inverter changes everything!

I will be working through a lot of updates to 3 of 4 integrations as a result…

On 20 Nov 2024 at 21:00 +0000, Paulholloway @.***>, wrote:

Seemingly stabilised now having increased the timeout (though I'm on HA Core 2024.10.3 and reluctant to make another update). Whether this is all circumstantial... who knows!

delay: 10

message_wait_milliseconds: 100

timeout: 15

—

Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.***>

—

Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you commented.Message ID: @.***>

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
 Sent from my iPhoneOn 21 Nov 2024, at 15:42, fboundy @.***> wrote:
Working on it
On 21 Nov 2024 at 14:29 +0000, Paulholloway @.***>, wrote:

Good job the modbus effectively closes the connection to SolisCloud etc. Hopefully you’ve a plan to overcome this?Sent from my iPhoneOn 21 Nov 2024, at 07:43, fboundy @.***> wrote:

It’s an update that was pushed to my 2 year old inverter this week by Solis while they were fixing something else

On 21 Nov 2024 at 06:19 +0000, Paulholloway @.***>, wrote:

To confirm - are these just the latest physical inverters or is this a software update to the existing stock?On 20 Nov 2024, at 21:48, fboundy @.***> wrote:

Be aware that the 4B HMI update to the inverter changes everything!

I will be working through a lot of updates to 3 of 4 integrations as a result…

On 20 Nov 2024 at 21:00 +0000, Paulholloway @.***>, wrote:

Seemingly stabilised now having increased the timeout (though I'm on HA Core 2024.10.3 and reluctant to make another update). Whether this is all circumstantial... who knows!

delay: 10

message_wait_milliseconds: 100

timeout: 15

—

Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.***>

—

Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you commented.Message ID: @.***>

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.***>

—

Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you commented.Message ID: @.***>

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.***>

https://ko-fi.com/fboundy
On 21 Nov 2024 at 15:58 +0000, Paulholloway @.***>, wrote:

Star!Where’s the ‘buy a coffee’ for you link? Sent from my iPhoneOn 21 Nov 2024, at 15:42, fboundy @.***> wrote:
Working on it
On 21 Nov 2024 at 14:29 +0000, Paulholloway @.***>, wrote:

Good job the modbus effectively closes the connection to SolisCloud etc. Hopefully you’ve a plan to overcome this?Sent from my iPhoneOn 21 Nov 2024, at 07:43, fboundy @.***> wrote:

It’s an update that was pushed to my 2 year old inverter this week by Solis while they were fixing something else

On 21 Nov 2024 at 06:19 +0000, Paulholloway @.***>, wrote:

To confirm - are these just the latest physical inverters or is this a software update to the existing stock?On 20 Nov 2024, at 21:48, fboundy @.***> wrote:

Be aware that the 4B HMI update to the inverter changes everything!

I will be working through a lot of updates to 3 of 4 integrations as a result…

On 20 Nov 2024 at 21:00 +0000, Paulholloway @.***>, wrote:

Seemingly stabilised now having increased the timeout (though I'm on HA Core 2024.10.3 and reluctant to make another update). Whether this is all circumstantial... who knows!

delay: 10

message_wait_milliseconds: 100

timeout: 15

—

Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.***>

—

Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you commented.Message ID: @.***>

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.***>

—

Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you commented.Message ID: @.***>

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.>


Created plant endodermal cell fate specification & plant endodermal c…

…ell differentiation. #24248

Looks good, @raymond91125.  Please go ahead with pushing into the master version.


Typo in test

https://github.com/concourse/baggageclaim/blob/master/api/volume_server_test.go#L499
should probably be "can be destroyed". Just noticed this by chance, probably not worth a pull request.

worth a PR to us!

Here you go ;)
https://github.com/concourse/baggageclaim/pull/5

thanks :)


Feature/test api

:tada: This PR is included in version 1.10.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add an optional wrapTextWidget property

This PR adds the ability to wrap the text by any other widget (like a Container), without wrapping the widget specified in the overflowReplacement parameter.
This is especially useful when you want to add extra padding on your text, but not on the overflow replacement widget.
For example:
AutoSizeText(
  'XXXXX', // Extra padding of 5px is added around this text
  style: TextStyle(fontSize: 20),
  wrapTextWidget: (_, text) => Container(
    padding: EdgeInsets.all(5),
    child: text,
  ),
  overflowReplacement: Text('*'), // No padding is added arount this replacement text
),

Maybe the wrapTextWidget could have a better name (if you have better ideas)?
Just to give more context in a "real world", I'm using overflowReplacement with the marquee flutter package. So when the text is too long, it scrolls horizontally and automatically.
And since this replacement widget needs an extra width (to add fading edges), this new parameters allows to add padding to the original text widget, to offset the text alignment when the replacement widget isn't necessary.

I think this can be handled by my textBuilder PR that is ready to land:
https://github.com/leisim/auto_size_text/pull/85

Indeed 👍
I'm looking forward to seeing it merged, thanks for your addition!


Bigtable PartialRowsData is not an iterable.

It appears to me that if I want to scan through all rows of a Bigtable, Table.read_rows() is the function to use. This returns a PartialRowsData.
Why is PartialRowsData not an iterable? I'd like to consume all the rows for a "hello bigtable" sample by iterating through them. Something like
print('Scan for all greetings:')
for row in table.read_rows():
    print(row.cells[COLUMN_FAMILY_NAME][COLUMN_NAME.encode('UTF-8')][0].decode('UTF-8'))

Instead, it appears that I need to use a while loop and watch a dictionary that gets populated. I think this means that even if I don't need to store all the rows in memory at once, they still do. That's both inefficient and not following Python idioms (of generators / iterables).

Taking a peek at PartialRowsData.consume_next(), it's because of the nature of the Bigtable API. The actual stream returned from the API may have partial results for a row, hence we need to build it up to get a complete answer. I agree this is memory hungry and this was something I worried about (tried to track down old discussions, can't find any right now).
You don't need to use a while loop, you can just use
partial_rows = table.read_rows()
partial_rows.consume_all()

Maybe we should make this clearer in the Data API doc?

Yeah, it could could definitely be clearer in the docs. I'll see if I can improve them at all as I work on the bigtable "hello world".
I can imagine consume_all() being super memory hungry, so I would still like an easy way to consume in a specified batch size.
@dhermes What do you think about adding an iterrows() function/generator to PartialRowsData that yields a (key, row) tuple and deletes that row from rows after calling consume_next()?

I'm 100% for making this actually stream results instead of storing them in a dictionary. I just don't know what the implications are of giving users partially built results due to chunking. Could you sit down with someone on the eng team for a chat / sanity check?

I've thought about this some more (and read the source code). I'm starting to think the current implementation is the only way it can work, at least if we want to provide full rows in the client.
Maybe we could return a partial row and then later another partial row with the same key? I'm wondering if that behavior would be more intuitive than filling the client's memory. Probably not, actually.

Thanks for giving it some thought!

AFAICS all the other APIs (Go and Java) provide a true iterator-interface. And it is really needed in Python, too. Otherwise a lot of use-case are simply impossible to implement.
It should be as simple as: Whenever the state switches to NEW_ROW we know that we have read a complete row before that and we can yield that (assuming the iterator is written as a generator). This seems to be what the Go-code is doing.

Thanks for bringing this to our attention @flunderpero. Maybe I misunderstand CellChunk.row_status. When you say NEW_ROW, you are referring to commit_row?
ISTM that you are describing a temporary dict that we pop (and yield) from every time commit_row is encountered? Essentially the same underlying data structure that currently exists, except we don't allow it to grow without bound, since we pop a given row once the API tells us to move on.

This is something the Bigtable team would like to see in the API. I'm happy to sign up to do the work, which I believe could be making PartialRowsData iterable with the method @dhermes describes above.

The motivation here is that, while one row can be a maximum of 256MiB, reading the entire result of a read_rows call with consume_all could quickly lead to memory issues on the client.

Works for me @garye.
@lukesneeringer WDYT (re: prioritization)?


PySpark API

ToDos

[x] see why #103 and #102 are different for some reason
[x] README.md: consider renaming "Python binding" to "Python API"
[x] README.md: consider moving the Python API section at the end of the usage section for the usage and the pip install command in the "Getting DDQ" section already. This way, people are already aware at the beginning of the readme file that there will be a python API coming.
[x] README.md: Capitalize "Scala" 📦
[x] python/README.rst: Fill long description and review the rest
[ ] How to publish to pypi http://peterdowns.com/posts/first-time-with-pypi.html?
Publish using travis https://docs.travis-ci.com/user/deployment/pypi (WONT DO)

References

http://stackoverflow.com/questions/36023860/how-to-use-a-scala-class-inside-pyspark
https://github.com/pypa/sampleproject

@Gerrrr it doesn't seem too complex, looking at http://stackoverflow.com/questions/36023860/how-to-use-a-scala-class-inside-pyspark

Small prototype:
$ pyspark --driver-class-path ./drunken-data-quality-assembly-3.2.0-SNAPSHOT.jar
from uuid import uuid4

class Check(object):
    def __init__(self, df):
        self.df = df
        self.jvm = df._sc._jvm
        displayName = self.jvm.scala.Option.empty()
        cacheMethod = self.jvm.scala.Option.empty()
        constraints = self.jvm.scala.collection.immutable.List.empty()
        id = str(uuid4)
        self.jvmCheck = self.jvm.de.frosner.ddq.core.Check(df._jdf,
                                                      displayName,
                                                      cacheMethod,
                                                      constraints,
                                                      id)
    def isNeverNull(self, columnName):
        self.jvmCheck = self.jvmCheck.isNeverNull(columnName)
        return self
    def run(self, reporters):
        jvmReporters = jvm.scala.collection.JavaConversions.asScalaBuffer(reporters).toList()
        self.jvmCheck.run(jvmReporters)

rdd = sc.parallelize([(1, "a"), (2, "b"), (3, "c")])
df = sqlContext.createDataFrame(rdd)
markdownReporter = jvm.de.frosner.ddq.reporters.MarkdownReporter(jvm.System.out)

check = Check(df)
check.isNeverNull("_1").run([markdownReporter])

Output:
**Checking [_1: bigint, _2: string]**

It has a total number of 2 columns and 3 rows.

- *SUCCESS*: Column _1 is never null.

I cannot commit to your branch so here's the patch that adds the pythonItAssembly task to SBT, @Gerrrr.
When you run it, it will run assembly and then put the fat jar in python/drunken-data-quality.jar.

With tests: sbt pythonItAssembly
Without tests: sbt 'set test in assembly := {}' pythonItAssembly

From 01288b9af7d3ea25d1941f1d47de02815d8f3a4b Mon Sep 17 00:00:00 2001
From: Frank Rosner<EMAIL_ADDRESS>Date: Wed, 6 Jul 2016 19:43:23 +0200
Subject: [PATCH] #91 python assembly task to provide fat jar for python tests

---
 build.sbt | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/build.sbt b/build.sbt
index 47bec15..3824233 100644
--- a/build.sbt
+++ b/build.sbt
@@ -35,3 +35,7 @@ fork := true
 javaOptions += "-Xmx2G"

 javaOptions += "-XX:MaxPermSize=512m"
+
+lazy val pythonItAssembly = taskKey[Unit]("python-it-assembly")
+
+pythonItAssembly <<= assembly map { (asm) => s"cp ${asm.getAbsolutePath()} python/drunken-data-quality.jar" ! }
--
2.6.3

Do you need any help @Gerrrr ?

Hi @FRosner,
No, I just did not have time last week. I will work on the issue this week.

@Gerrrr Please let me know when the merge request is ready to be merged, as I would like to change also a few minor things in the readme.

Following your instructions from http://peterdowns.com/posts/first-time-with-pypi.html  @Gerrrr, I tried
frosner:python/ (issue/91-2*) $ python setup.py register -r pypitest                      [20:52:41]
running register
running egg_info
writing requirements to pyddq.egg-info/requires.txt
writing pyddq.egg-info/PKG-INFO
writing top-level names to pyddq.egg-info/top_level.txt
writing dependency_links to pyddq.egg-info/dependency_links.txt
[pbr] Reusing existing SOURCES.txt
running check
Registering pyddq to https://testpypi.python.org/pypi
Server response (400): Invalid version, cannot use PEP 440 local versions on PyPI.

Can we try to debug together?

Actually, this guide explicitly says that you should not use register to do it: https://packaging.python.org/distributing/#uploading-your-project-to-pypi

@FRosner, sure! Let's debug it tomorrow.

The version used by setup.py is generated by egg_info (the third line in your output above) and derived from the status of your repository:
✗ cat pyddq.egg-info/PKG-INFO
Metadata-Version: 1.1
Name: pyddq
Version: 3.1.0.post0.dev12+ng367b68b.dirty
Summary: Python binding to Drunken Data Quality

In order to publish a package on Pypi, its version should comply Public version identifiers.
Currently, there is  3.1.0 because this is the latest tag in git repo, post0.dev12+ng367b68b identifies the commit and dirty means that there are uncommited changes.
Please commit your changes, make a tag (e.g. 3.2.0) and try again.

Did you call me dirty?

frosner:python/ (issue/91-2) $ python setup.py register -r pypitest

running register
running egg_info
writing requirements to pyddq.egg-info/requires.txt
writing pyddq.egg-info/PKG-INFO
writing top-level names to pyddq.egg-info/top_level.txt
writing dependency_links to pyddq.egg-info/dependency_links.txt
[pbr] Reusing existing SOURCES.txt
running check
Registering pyddq to https://testpypi.python.org/pypi
Server response (200): OK

@Gerrrr but when I try to pull it I get:
pip install -i https://testpypi.python.org/pypi pyddq
Collecting pyddq
  Could not find a version that satisfies the requirement pyddq (from versions: )
No matching distribution found for pyddq

Sorry I should RTFM...
frosner:python/ (issue/91-2) $ python setup.py sdist upload -r pypitest
running sdist
running egg_info
writing requirements to pyddq.egg-info/requires.txt
writing pyddq.egg-info/PKG-INFO
writing top-level names to pyddq.egg-info/top_level.txt
writing dependency_links to pyddq.egg-info/dependency_links.txt
[pbr] Processing SOURCES.txt
[pbr] In git context, generating filelist from git
warning: no files found matching 'AUTHORS'
warning: no files found matching 'ChangeLog'
warning: no previously-included files found matching '.gitreview'
warning: no previously-included files matching '*.pyc' found anywhere in distribution
writing manifest file 'pyddq.egg-info/SOURCES.txt'
running check
creating pyddq-3.2.0
creating pyddq-3.2.0/pyddq
creating pyddq-3.2.0/pyddq.egg-info
making hard links in pyddq-3.2.0...
hard linking README.rst -> pyddq-3.2.0
hard linking setup.cfg -> pyddq-3.2.0
hard linking setup.py -> pyddq-3.2.0
hard linking pyddq/__init__.py -> pyddq-3.2.0/pyddq
hard linking pyddq/core.py -> pyddq-3.2.0/pyddq
hard linking pyddq/jvm_conversions.py -> pyddq-3.2.0/pyddq
hard linking pyddq/reporters.py -> pyddq-3.2.0/pyddq
hard linking pyddq/streams.py -> pyddq-3.2.0/pyddq
hard linking pyddq.egg-info/PKG-INFO -> pyddq-3.2.0/pyddq.egg-info
hard linking pyddq.egg-info/SOURCES.txt -> pyddq-3.2.0/pyddq.egg-info
hard linking pyddq.egg-info/dependency_links.txt -> pyddq-3.2.0/pyddq.egg-info
hard linking pyddq.egg-info/not-zip-safe -> pyddq-3.2.0/pyddq.egg-info
hard linking pyddq.egg-info/requires.txt -> pyddq-3.2.0/pyddq.egg-info
hard linking pyddq.egg-info/top_level.txt -> pyddq-3.2.0/pyddq.egg-info
copying setup.cfg -> pyddq-3.2.0
Writing pyddq-3.2.0/setup.cfg
Creating tar archive
removing 'pyddq-3.2.0' (and everything under it)
running upload
Submitting dist/pyddq-3.2.0.tar.gz to https://testpypi.python.org/pypi
Server response (200): OK

Now the problem is:
sudo docker run -it -p 8000:8000 python:alpine /bin/sh

pip install -i https://testpypi.python.org/pypi pyddq
Collecting pyddq
  Downloading https://testpypi.python.org/packages/67/aa/941614e22736a240c5cc0c878e9e16b6cf30090018971254c1c61641434a/pyddq-3.2.0.tar.gz
    Complete output from command python setup.py egg_info:
    Download error on https://pypi.python.org/simple/pyscaffold/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645) -- Some packages may not be found!
    Couldn't find index page for 'pyscaffold' (maybe misspelled?)
    Download error on https://pypi.python.org/simple/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645) -- Some packages may not be found!
    No local packages or download links found for pyscaffold<2.6a0,>=2.5a0
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-9wom9_tk/pyddq/setup.py", line 64, in <module>
        setup_package()
      File "/tmp/pip-build-9wom9_tk/pyddq/setup.py", line 59, in setup_package
        "integration_test": IntegrationTestCommand
      File "/usr/local/lib/python3.5/distutils/core.py", line 108, in setup
        _setup_distribution = dist = klass(attrs)
      File "/usr/local/lib/python3.5/site-packages/setuptools/dist.py", line 268, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/usr/local/lib/python3.5/site-packages/setuptools/dist.py", line 313, in fetch_build_eggs
        replace_conflicting=True,
      File "/usr/local/lib/python3.5/site-packages/pkg_resources/__init__.py", line 836, in resolve
        dist = best[req.key] = env.best_match(req, ws, installer)
      File "/usr/local/lib/python3.5/site-packages/pkg_resources/__init__.py", line 1081, in best_match
        return self.obtain(req, installer)
      File "/usr/local/lib/python3.5/site-packages/pkg_resources/__init__.py", line 1093, in obtain
        return installer(requirement)
      File "/usr/local/lib/python3.5/site-packages/setuptools/dist.py", line 380, in fetch_build_egg
        return cmd.easy_install(req)
      File "/usr/local/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 623, in easy_install
        raise DistutilsError(msg)
    distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('pyscaffold<2.6a0,>=2.5a0')

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-9wom9_tk/pyddq/

Do run into the same error with Python 2?

No @Gerrrr. It works with python2.
sudo docker run -it -p 8000:8000 python:2 /bin/sh

# pip install -i https://testpypi.python.org/pypi pyddq
Collecting pyddq
  Downloading https://testpypi.python.org/packages/67/aa/941614e22736a240c5cc0c878e9e16b6cf30090018971254c1c61641434a/pyddq-3.2.0.tar.gz
Building wheels for collected packages: pyddq
  Running setup.py bdist_wheel for pyddq ... done
  Stored in directory: /root/.cache/pip/wheels/4b/c6/1d/4af8e6e3ed0d727bff85bbb8114c0896e8cc78bb2050ded0e5
Successfully built pyddq
Installing collected packages: pyddq
Successfully installed pyddq-3.2.0


Scratchpad module 'ruled' not found

Hello, I'm not sure whether it was worth opening the issue, I encountered a strange import problem on awesome wm stable 4.3
awesome --version
awesome 4.3 (Too long)
 • Compiled against Lua 5.2.4 (running with Lua 5.2)
 • D-Bus support: ✔
 • execinfo support: ✔
 • xcb-randr version: 1.6

I just add bling as a git submodule in ~/.config/awesome/modules/bling
When trying to start awesomewm:
error: ./bling/module/scratchpad.lua:6: module 'ruled' not found:

Here is this line:
local ruled = capi.awesome.version ~= "v4.3" and require("ruled") or nil

I checked what result I would get in my rc.lua:
-- bottom rc.lua:
local capi = { awesome = awesome, client = client }
print(capi.awesome.version)  --> 4.3

Accordingly, if fix ./bling/module/scratchpad.lua:6
- local ruled = capi.awesome.version ~= "v4.3" and require("ruled") or nil
+ local ruled = capi.awesome.version ~= "4.3" and require("ruled") or nil

Everything is working.
Like I said, I'm not sure if this is a module issue or if I'm the only one experiencing this.
In case this is important, I use the nixOS version of awesomewm without modifications which comes with the configuration:
xserver.windowManager.awesome.enable = true;

Yes the way that the used awesomewm version is detected doesn't work reliably because the version "tag" is set as a build variable and is thus up to the package manager most of the time. So this change would break for arch users and probably others instead. It is a valid issue and I don't have a proper solution right now but open for input

@Nooo37 I think something similar to this could work?
local _ruled_status, ruled= pcall(function()
    return require("ruled")
end)
if not _ruled_status or not ruledthen
  -- 4.3 code
else
 -- 4.4 code
end

I have this problem too. Is it still not possible to fix it?


Need to remove CorrectTensorEndianness in AllocateTensors

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):Ubuntu 18.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:N/A
TensorFlow installed from (source or binary):source
TensorFlow version (use command below):2.3.1
Python version:3.6.9
Bazel version (if compiling from source):3.4.1
GCC/Compiler version (if compiling from source):Ubuntu 7.5.0-3ubuntu1~18.04
CUDA/cuDNN version:N/A
GPU model and memory:N/A

Describe the current behavior
On testing  //tensorflow/lite/micro:memory_arena_threshold_test on s390x, the TC was failing with a segmentation fault.
On debugging, it was found the CorrectTensorDataEndianness function was byte swapping a tensor which made it cross its data type limit. It looks like the FlatBufferVectorToTfLiteTypeArray already converts flatbuffer tensor data from little endian to big endian during StartModelAllocation function call within AllocateTensors function and CorrectTensorDataEndianness is not required anymore.
To make the test case pass, Allocation size values were also changed in memory_arena_threshold_test.cc file. Although as suggested in my last PR request #45790, I am raising this bug with a separate PR with removal of  CorrectTensorDataEndianness function call.
Describe the expected behavior
CorrectTensorDataEndianness is not required as the tensor data is already converted to BE format.
Standalone code to reproduce the issue
Code to reproduce the issue:
bazel --host_jvm_args="-Xms1024m" --host_jvm_args="-Xmx2048m" test --host_javabase="@local_jdk//:jdk" --test_tag_filters=-gpu,-benchmark-test,-v1only,-no_oss,-oss_serial  -k --test_timeout 300,450,1200,3600 --build_tests_only --test_output=errors -- //tensorflow/lite/micro:memory_arena_threshold_test
Other info / logs
I am creating a new PR request with only this change as suggested by @advaitjain.

Closing as related PR is merged.

Closing as related PR is merged.


feat: more scratch org creation flags

What does this PR do?
4 new flags to allow overrides of scratch def
1 nut to test 3 of them (we can't do release becuase it's not always available)
What issues does this PR fix or reference?
@W-12746098@
https://github.com/forcedotcom/cli/issues/2016

QA Notes

config file with missing edition ✅

org org:create:scratch --definition-file config/project-scratch-def-copy.json

Error (1): You must specify an edition when creating a scratch org.
Creating Scratch Org... done

config file with missing edition and --edition developer ❌
Given that we have so many flags now that are used to supplement the config, maybe --edition should be treated the same way. I can see setting up a config that is missing edition when an org is testing their changes across edition types.

org org:create:scratch --definition-file config/project-scratch-def-copy.json --edition developer
Error (1): The following errors occurred:
  --definition-file cannot also be provided when using --edition
  --edition cannot also be provided when using --definition-file

Just edition ✅
overrides ✅

@mshanemc  your response to?
Given that we have so many flags now that are used to supplement the config, maybe --edition should be treated the same way. I can see setting up a config that is missing edition when an org is testing their changes across edition types.


la-go-live

Docs Build status updates of commit 3d6d63f:
:clock10: Pending: waiting for processors (10 builds ahead of you)
:warning: Docs Build is busy, currently there are 10 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 3d6d63f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/assets/images/workplace-awards-champion-tab.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/workplace-awards-nominate.png
:white_check_mark:Succeeded
View

msteams-platform/samples/app-templates.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


[MouseUtils]check queue dispatcher initialization

Summary of the Pull Request
What is this about:
Some users report a crash when enabling Mouse Pointer Crosshairs
What is included in the PR:
Check for queue dispatcher initialization in case the settings are updated before the PowerToy has had a chance to initialize its queue dispatcher.
How does someone test / validate:
This is not easy to replicate consistently. Seems to depend on the user machines. I've been able to replicate it only twice by disabling/enabling the PowerToy quickly in a row. Looking for that Code Quality check here only.
Quality Checklist

[x] Linked issue: #15885
[x] Communication: I've discussed this with core contributors in the issue.
[ ] Tests: Added/updated and all pass
[ ] Installer: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Docs: Added/ updated
[x] Binaries: Any new files are added to WXS / YML

[x] No new binaries
[ ] YML for signing for new binaries
[ ] WXS for installer for new binaries

Contributor License Agreement (CLA)
A CLA must be signed. If not, go over here and sign the CLA.

Some users confirmed this solved the issue for them.
Thanks for the reviews!


Error when trying to remove claim with the latest version of EF

Hi,
Got this error when I try to remove a claim with the latest version of EF (6.1.30225):
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: The operation failed: The relationship could not be changed because one or more of the foreign-key properties is non-nullable. When a change is made to a relationship, the related foreign-key property is set to a null value. If the foreign-key does not support null values, a new relationship must be defined, the foreign-key property must be assigned another non-null value, or the unrelated object must be deleted.
Source Error:
Line 60:         protected virtual void SaveChanges()
Line 61:         {
Line 62:             db.SaveChanges();
Line 63:         }
Line 64:

Just for kicks: I have the exact same issue.
And yes I have added the RegisterUserAccountChildTablesForDelete and I have not changed anything concerning lazyloading or such.
It seems to be related to the latest EF version (6.1) Its easy to reproduce as well. Checkout the customization sample from github. Try to register an account and stuff starts failing.

Ugg, ok. I'll look into it. Thx.

Ah. I just came to the exact conclusion as AlonCG did in his referenced issue. Shall we continue this in there? Due to that issue being more relevant to the problem at hand ?

Well, do whatever you can to determine what the real issue is -- I don't have a lot of time, so if you figure it out sooner then that's help all of us.

Ok ill stay in this thread then.
Here is what I found out:
When using the current source, build against the latest EF (6.1.2). It works. My previous attempts failed due to unrelated issues, which weren't immediately clear due to EF mucking up Exceptions.
So then I started comparing stuff. A few things became clear quite fast.

The nuget packages still use the RelationalUserAccount with the generic key. Where the current source does not.
The RegisterUserAccountChildTablesForDelete is gone.
And so a few other things. For example: useraccount name validation has been tightened. (no more spaces! aww...)

So I updated my project to use the latest source build. And after fixing some EF "database changed" troubles, stuff works now.
So sorry for scaring you by necromancing this issue back from the dead. But I am actually more then curious as to what the fundamental change was that fixed this issue?
And I advice updating the nuget packages, it will save new users quite abit of grief.


Team page

A static page to list the team working on the foodsaving tool. We could either put it in this codebase or have a separate page on our upcoming blog.
On the page: pictures, short self descriptions, contact, responsibilities (inspired by https://slack-files.com/T0B6WCFM5-F481PUPC7-7bf55ef119)

What do you think about putting the team page in the blog instead of the main website? We could create a static page there.
Pro:

Less static content in this repo
Translation not coupled with the transifex frontend strings

We have a preliminary team page now. Could be extended ;)
https://blog.foodsaving.world/team.en.html


Managed Node Groups do not support ami_type without specifying it on every element of node_groups

I have issues
I'm submitting a...

[X ] bug report

What is the current behavior?
Does not support variable ami_types without defining ami_type in every sub node group
If this is a bug, how to reproduce? Please include a code sample if relevant.
`  node_groups = [
{
name = "cpu-node-group"
  node_group_desired_capacity = 2
  node_group_max_capacity     = 4
  node_group_min_capacity     = 1

  instance_type = "c5.2xlarge"
  disk_size     = 250
  node_group_k8s_labels = {
    node-group   = "cpu-node-group"
    Cluster_Name = local.cluster_name
  }
  remote_access = {
    ec2_ssh_key               = aws_key_pair.all_nodes_key_pair.key_name
    source_security_group_ids = [aws_security_group.office.id]
  }
},
{
  name                        = "gpu-node-group"
  node_group_desired_capacity = 2
  node_group_max_capacity     = 4
  node_group_min_capacity     = 1

  instance_type = "g4dn.xlarge"
  ami_type      = "AL2_x86_64_GPU"
  disk_size     = 250
  node_group_k8s_labels = {
    node-group   = "gpu-node-group"
    Cluster_Name = local.cluster_name
  }
  remote_access = {
    ec2_ssh_key               = aws_key_pair.all_nodes_key_pair.key_name
    source_security_group_ids = [aws_security_group.office.id]
  }
}

]`
What's the expected behavior?
Should create a node group with ami_type GPU and one non (default)
Environment details

Affected module version:
OS: Darwin Catalina, latest
Terraform version: terraform cloud 0.12.8

Input data structure for node groups was changed in #650 and released in v8.0.0. There's now a node_groups_defaults variable that sets common options for all node groups.


Why cant i import from scapy?

D:\Dofus Py\DofusHelper-main>py main.py
Initializing sniffer ...
Traceback (most recent call last):
File "main.py", line 1, in
from sniffer import network
File "D:\Dofus Py\DofusHelper-main\sniffer\network.py", line 22, in
from scapy.all import plist, conf
ImportError: cannot import name 'plist' from 'scapy.all' (C:\Users\Tomek\AppData\Local\Programs\Python\Python38\lib\site-packages\scapy-git_archive.dev36448129bf-py3.8.egg\scapy\all.py)

Should be the scapy package version. Most recent ones had their architecture changed, you need an older one.
Though that wouldn't make the whole thing work anyway; Ankama changes a lot of their packet ids each minor update, which require a manual (at least on my part) extraction of the game files to update the whole thing, and some tweaks here and there in the code that shouldn't be necessary but i can't be bothered to optimize it. That means the scripts basically only work whenever i'm playing (and updating it), which is not that often.
You can update it yourself via the DofusInvoker.swf file in the game directory, which you can extract with one of the scripts of [LaBot](https://github.com/louisabraham/LaBot).

That was right. 2.4.2 Scappy worked


Add ::MYPY annotation to test nodeid

This is to be consistent with pytest-black and pytest-flake8 as well as
be descriptive when running:
pytest -v --tb=no --lf

To get a list of last failed test node IDs.
References:

https://github.com/shopkeep/pytest-black/blob/master/pytest_black.py#L45
https://github.com/tholo/pytest-flake8/blob/master/pytest_flake8.py#L90

Annotate nodeid where it is a valid property of pytest.Item
TODO:

[ ] Add test to get 100% code coverage for pytest <= 3.0
- It seems pytest.Item didn't always have self._nodeid across the tox testing matrix of pytest.
- https://docs.pytest.org/en/2.9.2/example/index.html
- Pytest 2.9.2 release commit: https://github.com/pytest-dev/pytest/tree/978bb190a14d04634dffa1018dce2a5ead404efa

Parking this for now but hints appreciated to close the gap.
Also appreciate if this is not in line with where the project is going and you want to close on principle.
Thanks for your time in triage and review.

Thanks for looking into this @dmtucker
You can always filter by:
pytest --mypy -m mypy src/pytest_mypy.py
pytest --mypy -m black src/pytest_mypy.py
pytest --mypy -m flake8 src/pytest_mypy.py

To distinguish between items that are marked differently.
I made a local conftest.py that modifies the nodeID on discovery which I'll post the snippet when I get into the office.
I think:

modifying the nodeID AND
supporting backwards compatibility that far AND
100% code coverage

might not be satisfiable. And to be honest the last two are more important to satisfy. So I'll close this PR after I post the snippet work around. I'm following releases so when you got 1.0 I'll circle back.


Update Hopkins logo

Update log on the PASS app to be the standard JHU logo (note: I have asked Heather/Jessica where to get this logo, but if you know which one they mean, feel free to go ahead with the ticket).

Blocking since it seems we have not landed on which logo to use yet.

Per Jessica: I have changed out the logo on the WP site. The file is attached for you to use on the PASS app. I confirmed with Heather that the PASS site is not in compliance with the guidelines we’d have to meet to use the enterprise logo, so the JHU logo is the one to go with, at least for now.

Removed the 1.2.0 milestone since it's JHU related.


Attribute Rendering

Rendering of Attributes within the annotation view area:
Attribute Render Settings:

Display Text  - auto-populates to attribute name but can be custom
Display Text Size - Size of display text (auto-populates to default type size)
Display Text Color - Auto-populates to color of attribute but can be custom
Value Text Size - Size of the value text
Value Text Color - Auto-populates to color of attribute but can be custom
order - the order of sorting the attributes top to bottom
Location [inside | outside] - whether the attributes are rendered inside the track or outside
Box [bool] - whether a box is drawn around the attribute
BoxColor - color of box if it is drawn around the outside
layout [vertical | horizontal] - if the attribute: value should be placed side-by-side or -top and bottom.
Attribute Display Width - a setting to customize the width of the area where the attribute will be.  This is because I don't know the width of all values so we need a general setting.  I think percent width of the track may be used here?
Attribute Display Height - The height of the attribute - auto setting will evenly distribute attributes on the right side

Possible Attribute Global Settings - By default it will render to the right side of the attribute in boxes that are evenly spaced

Just realized that we need a type filter for tracks, we may not want to render the element on every track, only those of a specific type.

Might add the ability for you to specify only showing attributes on a selected track as well as the regular type filter.


Major non backwards-compatible update to use deterministic semver promotion and v2 API [semver:major]

Checklist

[x] All new jobs, commands, executors, parameters have descriptions
[x] Examples have been added for any significant new features
[x] README has been updated, if necessary

Motivation, issues

The current method of semver promotion based on analyzing what has changed uses an algorithm that may not always match the orb author's desired semver increment (i.e. patch/minor/major) Although the orb also supports a static method of determining the increment, that requires changing the config.yml when the increment type is to be changed.
The orb supports kicking off an integration tests workflow that tests against a development orb newly published (@dev:alpha) from the commit being built. It does so by pushing git tags to trigger only the integrations test workflow as needed. Now that CircleCI v2 API is available, we can directly use the API to trigger the integrations test workflow. This would require less setup on the part of orb authors, as with the git tag approach, an SSH key must be configured in the orb's repository as a read/write key on GitHub, and in CircleCI via SSH Permissions.

Description

Replace dev-promote-prod job with dev-promote-prod-from-commit-subject job. Also adds a dev-promote-prod-from-git-tag job as an alternative. This allows orb authors to still be able to easily promote a development orb if the semver increment information was missed out in the commit subject.
Use v2 API instead of git tags to trigger an integration tests workflow. See the trigger-integration-tests-workflow job. The job sets up the integration tests workflow to test against the @dev:${CIRCLE_SHA1:0:7} version of the orb instead of @dev:alpha, to reduce conflicts with other branches.

THis looks good, but should e wait for the the GKE changes to be merged using this flow to confirm?

@eddiewebb Thank you for your review! Yes let's wait for the GKE changes to be merged to test this out 👍


oatpp update to 1.2.5

Library name:
New version number:
Other information that may be useful (release notes, etc...)

@xilutian ,Thanks for posting this issue,
currently the highest version of oatpp is 1.2.5.
Duplicate of #17599

Why am I still searching for 1.2.0, and what should I do  ，Thanks

@xilutian ,Please use the latest vcpkg

Can I just update Ports? Is there any command support

Use the "git pull" command to update vcpkg to the latest version, if it is still not the latest version, please clone vcpkg again

ok


Improvement in enabling of AWS ECS driver

Page: /setup/install/providers/aws/aws-ecs/
Feedback:
isnt necessary to run hal config provider ecs enable at the end of the configurations?
hal deploy apply
And validation step with
hal config

I believe hal config provider ecs enable is required.
Any AWS folks know otherwise, for this provider? @edwinavalos ? @clareliguori ?

I believe hal config provider ecs enable is required.
Any AWS folks know otherwise, for this provider? @edwinavalos ? @clareliguori ?

It is i dont know why is not mentioned. Also ECS provider requires a main AWS Provider account.
How is the process of improving the Spinnaker Documentation?

Sorry, @aleon1220 I misunderstood your original point! Without clicking through, I read "It isn't necessary," when you were actually asking "isn't it necessary?" Correct?
To answer your latest question, the process for improving the docs is about the same as it is for code. Fork this repo, make the change, push, create a PR, and someone will review it.
Would you like to take care of this, or do you want one of us frequent docs contributors to do so?
Also, let me know if you have any further questions about the process.
Thanks!
Dave

Sorry, @aleon1220 I misunderstood your original point! Without clicking through, I read "It isn't necessary," when you were actually asking "isn't it necessary?" Correct?
To answer your latest question, the process for improving the docs is about the same as it is for code. Fork this repo, make the change, push, create a PR, and someone will review it.
Would you like to take care of this, or do you want one of us frequent docs contributors to do so?
Also, let me know if you have any further questions about the process.
Thanks!
Dave

thanks. I have create the PR https://github.com/spinnaker/spinnaker.github.io/pull/1601

This is now resolved in the docs, thanks @aleon1220!
https://www.spinnaker.io/setup/install/providers/aws/aws-ecs/#enable-ecs-provider


[IMPROVEMENT] Use the Coverity Scan service for spdk codes

Is your improvement request related to a feature? Please describe (👍 if you like this request)
Coverity Scan is a tool that facilitates the detection and resolution of potential problems and vulnerabilities, and it supports open-source projects hosted on GitHub. We can use Coverity Scan to check the potential issues and defects in spdk source codes.
https://scan.coverity.com/
Here is an example that spdk is scanned by Coverity

Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Actually SPDK support gcc Address Sanitizer and Undefined Behavior Sanitizer, they can be enabled with
./configure --enable-asan --enable-ubsan


[#143151443] Reset unused accounts

What
Reset passwords for users that have never changed their password and still have their plaintext credentials stored in email.
How to review
🐝  This PR contains code that you need to use but should not be merged 🐝
Optional: if you want to test this in development:

Checkout an old copy of the create-user.sh script before we used invites:
 git checkout 201c5f8b3b686f9245faa450758269a95ae8276a~1

Create some users and make a note of their passwords:
 ./create-user.sh -o govuk-paas --no-email -e<EMAIL_ADDRESS> ./create-user.sh -o govuk-paas --no-email -e<EMAIL_ADDRESS> ./create-user.sh -o govuk-paas --no-email -e<EMAIL_ADDRESS>

Login with one of the users but do not change the password

Login with another of the users and change the password

Generate a list of users to reset:

Checkout branch:
 git fetch && git checkout bugfix/143151443-reset_unused_accounts

Change to scripts dir:
 cd scripts

Install dependencies:
 bundle install

Login to the environment that you want to target, either dev or prod:
 cf login …

Get list of users (you'll need to use SKIP_SSL_VALIDATION=true for dev):
 TARGET=$(cf curl /v2/info | jq -r .token_endpoint) \
 TOKEN=$(cf oauth-token) \
 bundle exec ./list_uaa_users.rb | tee users

Review the list of users for sanity.

Send a new invite to each user:
 while read user; do
     ./create-user.sh -r -e "$user"
 done < users

Close this PR.

 I'm not sure that they are worth fixing for the purpose of this story. Happy to be told otherwise though.

Applied.


Support an easier way to use a full-width layout to reflect common GOV.UK and service page patterns

What
Make it easier for users to change the page layout to a full width layout – eg the GOV.UK topic page uses a full-width layout https://www.gov.uk/browse/benefits and so do most service start pages, such as Notify: https://www.notifications.service.gov.uk/

Image above is a screenshot of Notify (https://www.notifications.service.gov.uk/) using a full-width page layout.
Why
So that users can more easily change their Prototype Kit page layout, to reflect common GOV.UK and service page patterns
Done when
The Prototype Kit enables users to more easily change the page layout

this could make a good page template, as a plugin


Add cash in cash out for all accounts view

CICO is nanopay specific. It shouldn't be referenced from the foam2 repository.
On November 22, 2018 5:26:42 PM EST, KateMengjunXia<EMAIL_ADDRESS>wrote:

You can view, comment on, or merge this pull request online at:
https://github.com/foam-framework/foam2/pull/1704
-- Commit Summary --

duplicate CICO for all accounts view
add cash in cash out for all accounts view

-- File Changes --
M src/foam/comics/BrowserView.js (9)
M src/foam/comics/DAOController.js (6)
M src/foam/comics/DAOControllerView.js (294)
M src/foam/nanos/menu/DAOMenu.js (7)
-- Patch Links --
https://github.com/foam-framework/foam2/pull/1704.patch
https://github.com/foam-framework/foam2/pull/1704.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/foam-framework/foam2/pull/1704

@jlhughes For sure
@KateMengjunXia We do this in Ablii for 4 pages: Banking, Contacts, Payables, and Receivables. The way to do it is to add a new class in the nanopay repo that extends 'foam.comics.DAOController'. Then you can create a new Menu in the menus journal file in nanopay, set the handler to a DAOMenu, and set the customDAOController property to your new custom DAO controller extension. Then you can add whatever properties you want to your own controller. See menus.jrl and ContactController for examples.

Please make these changes in the nanopay repo.


Upgrade to btleplug 0.7.2

Maybe a few bugs are fixed?

Unfortunately, we cannot do incremental scanning yet, at least on MacOS. There's a bunch of error logs from btleplug about Error sending notification event: send failed because receiver is gone and similar, and our callback is never invoked. So we'll stick to just waiting 2 minutes and seeing whatever peripherals popped up. This works OK, and you don't need to do it that often anyway.

However - yay! - we can now read the battery level. I'll keep that out of this PR, since we'll need to update the output etc.


Modify the Revert code to Act on closed Pull Requests that have the 'revert' label added to them.

Revert needs to be refactored to a separate service but for the time being it can be refactored to a separate endpoint within the autosubmit service.

[x] Refactor the check pull requests so that CheckPullRequest and RevertPullRequest share a base class.
[x] Refactor the validation service so that it has an interface. This will allow us to separate the code for processing a revert request and a regular pull request.
[x] Implement graphql mutation for revert
[x] Create the scheduled cron task that will now act on revert requests.
[x] Create a follow up issue to actually create a full revert service. This will depend on a common library that is in development for multiple teams that will be supplied by the flutter engprod team.
[x] The Autosubmit bot will need push access in order to generate a revert request on it's own. Update the permissions to add 'push' access to the app.
[x] The Autosubmit bot will need to be added to the list of automatic approvals as it will need to generate the revert pull request. This will change after the revert service is moved out of Autosubmit. For the time being Autosubmit will handle it.
[x] Create the 'revert of' label in all of the autosubmit reported repositories.
[x] Add autosubmit[bot] to the list of auto approval accounts in the .github autosubmit configuration file https://github.com/flutter/.github/pull/31
[x] Create a @google email for the Autosubmit bot account. Apps can be associated internally with an email account.
[x] Autosubmit will need to sign the CLA in order to make the revert request as an author.
Note the currently the wrong email was somehow associated with the app bot. It will need to be updated later but OSPO team is not currently working on it.
[x] Add a one page design doc for the workflow with the two labels. https://github.com/flutter/flutter/issues/134845
[x] Add the revert of label to the other supported repositories

The implementation has been updated due to the nature of the way github events are generated. The following is the workflow that will occur when a user wishes to revert a change.

The user will add the 'revert' label to a closed pull request.
The bot will then issue the revert graphql mutation to open a new pull request.
The bot will then add the 'revert of' label so that we can process this new pull request. We would have had issues and needed to possible keep metadata to filter out issues if we reused the 'revert' label solely to handle both requests.
The request will be automatically approved and merged once all checks are completed.

Added the ability to push to repositories with the autosubmit bot.

The common library has been pushed back and revert will remain in the autosubmit bot for the time being.

flutter.dev/go/automated-revert-workflow


WIP: Pluggable icons

This fixes #97

Wait with this pr until we have a machinery for registering and getting "root"-y stuff. E.g. request, icon_formatter and assets
https://github.com/TriOptima/iommi/issues/156

I think we should circle back to this when it becomes relevant. Or if someone at TriOptima wants to tackle it for tri-icons. Seems like it's a non-issue at this point.


Integrate the gopath hacks

Signed-off-by: Arghya Sadhu<EMAIL_ADDRESS>Fixes #24

Proposed Changes

Release Note

Docs

I'm integrating this change here: #31

I'm integrating this change here: #31


Any support to disable Rails/WhereRange ?

Since rubocop-rails 2.25 a new cop Rails/WhereRange was introduced. I see it was enabled in standard here
Just wanted to tentatively put out why I think it maybe should have been disabled in standard-rails instead.
While I agree to discourage using SQL string fragments, I'm not sure that beginless ranges make readable alternatives, eg User.where('age < ?', 18) becomes User.where(age: ...18)
I imagine < is more widely understandable as "less than" compared to, "range up to but not including 18" (which one must remember that ... mean exclusive end).
Also when you consider <= vs < I find 2 dots vs 3 dots range literal syntax here hides the intent of the code more than its original form, eg:
User.where('age <= ?', 18).where('height < ?', 200)
User.where(age: ..18).where(height: ...200)

Finally, Ranges always include their beginning, so there is no Range where clause form for greater than, ie User.where('age > ?', 18) , so either way those versions will remain in your codebase, eg
User.where('age <= ?', 18).where('height > ?', 200) becomes User.where(age: ..18).where('height > ?', 200)
Thanks for the consideration and for all the work on standard!!

I agree, I actually missed this in the original PR -- my bad. Would support disabling :+1:

@searls ok cool. I tried to get a bit of feedback from other devs on this, and no one seems particularly pro it, so I will open a PR to disable it


Replace hex with utf8

Summary
Relates to #5478

Test plan
Might need testing on windows?

cc @rogeliog so he's aware you're breaking his stuff 😄


Add wait_until_weaviate_is_ready function

Add a function that checks if weaviate is responding on the given url:port and blocks until it does or a given timeout has passed

Hey @dirkkul, is this issue already satisfied here?
for port in $(all_weaviate_ports); do
   # pulling all images usually takes < 3 min
  # starting weaviate usually takes < 2 min
  i="0"
  STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" localhost:"$port"/v1/.well-known/ready)

  while [ "$STATUS_CODE" -ne 200 ]; do
    i=$(($i+5))
    echo "Sleep $i"
    sleep 5
    if [ $i -gt 300 ]; then
      echo "Weaviate did not start in time"
      exit 1
    fi
    STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" localhost:"$port"/v1/.well-known/ready)
  done
  echo "Weaviate on port $port is up and running"
done

Yes, but we wanted to have this behaviour as part of the client so our users can benefit from it :)


Package pinot-parquet and pinot-orc module into pinot-hadoop shaded jar

So that users could just drop shaded jar and run it in hadoop environment to read both parquet and orc files.
Sample conf in job.property
record.reader.path=org.apache.pinot.parquet.data.readers.ParquetRecordReader

Codecov Report

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

@@             Coverage Diff              @@
##             master    #4716      +/-   ##
============================================
+ Coverage     57.75%   57.89%   +0.13%
+ Complexity       16        4      -12
============================================
  Files          1213     1213
  Lines         65132    65132
  Branches       9487     9487
============================================
+ Hits          37616    37705      +89
+ Misses        24670    24564     -106
- Partials       2846     2863      +17

Impacted Files
Coverage Δ
Complexity Δ

...egation/function/customobject/MinMaxRangePair.java
75.86% <0%> (-24.14%)
0% <0%> (ø)

...impl/dictionary/DoubleOnHeapMutableDictionary.java
45.12% <0%> (-14.64%)
0% <0%> (ø)

...e/impl/dictionary/LongOnHeapMutableDictionary.java
56.09% <0%> (-14.64%)
0% <0%> (ø)

...ache/pinot/common/utils/TarGzCompressionUtils.java
68.23% <0%> (-12.95%)
0% <0%> (ø)

.../impl/dictionary/LongOffHeapMutableDictionary.java
59.13% <0%> (-7.53%)
0% <0%> (ø)

...impl/dictionary/FloatOffHeapMutableDictionary.java
60.21% <0%> (-6.46%)
0% <0%> (ø)

...mpl/dictionary/DoubleOffHeapMutableDictionary.java
50.53% <0%> (-5.38%)
0% <0%> (ø)

...nsport/netty/PooledNettyClientResourceManager.java
85.41% <0%> (-4.17%)
0% <0%> (ø)

...e/operator/dociditerators/MVScanDocIdIterator.java
57.14% <0%> (-3.18%)
0% <0%> (ø)

...roker/requesthandler/BaseBrokerRequestHandler.java
72.69% <0%> (-3.08%)
0% <0%> (ø)

... and 28 more

Continue to review full report at Codecov.

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


Add proper support for RFC 8210 (BGPSEC)

I think RFC 8210 section 6 was implemented, but Router Keys are not yet picked up from the JSON and converted into RTR PDUs (Section 5.10). An example Router Key is available under the RIPE TA. The pubkey field contains the SPKI in base64 encoded form.

Basic POC written:

commit d44a5d5aefe129f54aacbd88efdac6da01cda8a9 (HEAD -> bgpsec-poc-bad, origin/bgpsec-poc-bad)
Author: Ben Cartwright-Cox<EMAIL_ADDRESS>Date:   Tue Feb 21 18:30:41 2023 +0000
[DO NOT MERGE] Proof Of Concept BGPSec support

Tag: https://github.com/bgp/stayrtr/issues/57

This is not a good patch, however it does work.

What I will do is instead of merging this patch, I will write a new
one based on what I have learned on writing this one.

Most critically. I will not do what I have done here, and extend
bgpsec keys as it's own family of things since VRPManager.

Since when we do ASPA, that will add even round of things to VRPManager.

So instead I will make VRPManager a thing that serves generic things
rather than just VRPs. Make VRPs a thing, BGPSecKeys and ASPA

Last bit is to add BGPsec support to rtrmon

Probably best if rtrmon can use the same data structures?
It is now completely separate and that leads to extra work for everything
that is added.
On Tue, Feb 21, 2023, 23:17 Ben Cox @.***> wrote:

Last bit is to add BGPsec support to rtrmon
—
Reply to this email directly, view it on GitHub
https://github.com/bgp/stayrtr/issues/57#issuecomment-1439162360, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AABQTET2TDGVGPJP7W7VOILWYU5H7ANCNFSM5JGYA5QA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

It kinda already does use as much as possible, since RTRMon has the compare feature the needs for rtrmon are quite different to the rest of the tools

BGPsec support is in master branch


Support for workflow rollbacks

@mfateev as we discuss in the meeting
In case of unretryable error for activity execution, or canceling a running workflow; we would like to be able rollback the already executed activities for cleaning up the system state.
This requires recording the executed activities, and doing the rollback of each activity in the reverse order. I should also be able to specify the rollback activities parameters, or at least getting what passed in for the canonical activity.
As a customer, I could define the corresponding revert activities corresponding to my canonical activities. By default, that activity will be no-op is no revert action is needed.
Also I would like to trigger the rollback in my workflow explicitly, when I catch a Cancellation exception, or some non-retriable error.

It helps to think of Cadence as a dispatcher of tasks and timers. Error handling should involve compensation (not transactional 2PC). It doesn't know how to associate an activity with that activity's rollback. But it's straightforward enough to code in your workflow. For instance, let's assume my workflow looks like this:
public class AllOrNothingWorkflowImpl implements AllOrNothingWorkflow {
  @Override
  public void processFile(URL source, URL destination) {
    ActivityOptions activityOptions = new ActivityOptions.Builder().build();
    MyActivities myActivities = Workflow.newActivityStub(MyActivities.class, activityOptions);

    myActivities.activity1();
    myActivities.activity2();
  }
}

Each activity has a rollback activity and I just need to execute those on exceptions.
public class AllOrNothingWorkflowImpl implements AllOrNothingWorkflow {
  @Override
  public void processFile(URL source, URL destination) {
    ActivityOptions activityOptions = new ActivityOptions.Builder().build();
    MyActivities myActivities = Workflow.newActivityStub(MyActivities.class, activityOptions);

    try {
      myActivities.activity1();
      myActivities.activity2();
    } catch (Activity1Exception e) {
      myActivities.activity1Rollback();
    } catch (Activity2Exception e) {
      myActivities.activity2Rollback();
      myActivities.activity1Rollback();
    }
  }
}

There are many different ways of writing this. Does this answer your question?

Let's keep it open. I think it should be possible to come up with a more generic model. The example @dmetzgar gave is too simplistic and is not going to work for complex workflows that can take a lot of code paths in the try block.
The proposal is to implement some sort of interceptor that accumulates all the calls to the activity and then executes rollback operations in reverse order on abort.

@mfateev
What i'm doing just for investigation of Cadence is following(note, i'm really, not a Java developer and wrote this as a plain execution tracking idea):
import com.uber.cadence.activity.ActivityMethod;
import com.uber.cadence.workflow.Workflow;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Stack;

class CallResultEntry {
    private String methodName;
    private Object result;

    public CallResultEntry(String methodName, Object result) {
        this.methodName = methodName;
        this.result = result;
    }

    public String getMethodName() {
        return methodName;
    }

    public Object getResult() {
        return result;
    }
}

class CallProxy implements java.lang.reflect.InvocationHandler {

    private Stack<CallResultEntry> executionStack;
    private Object obj;

    public static Object newInstance(Object obj, Stack<CallResultEntry> executionStack) {
        return java.lang.reflect.Proxy.newProxyInstance(
                obj.getClass().getClassLoader(),
                obj.getClass().getInterfaces(),
                new CallProxy(obj, executionStack));
    }

    private CallProxy(Object obj, Stack<CallResultEntry> executionStack) {
        this.obj = obj;
        this.executionStack = executionStack;
    }

    public Object invoke(Object proxy, Method m, Object[] args)
            throws Throwable
    {
        Object result;
        try {
            result = m.invoke(obj, args);
            if(m.isAnnotationPresent(ActivityMethod.class)) {
                executionStack.push(new CallResultEntry(m.getName(), result));
            }
        } catch (InvocationTargetException e) {
            throw e.getTargetException();
        } catch (Exception e) {
            throw new RuntimeException("unexpected invocation exception: " +
                    e.getMessage());
        }

        return result;
    }
}

public class AdGroupCreateWorkflowImpl implements AdGroupCreateWorkflow {

    @Override
    public String createAdGroup(String name, String campaignId) throws Exception {
        final Stack<CallResultEntry> executionStack = new Stack<>();
        AdGroupActivities adGroupActivities = (AdGroupActivities) CallProxy.newInstance(Workflow.newActivityStub(AdGroupActivities.class), executionStack);
        try {
            adGroupActivities.createAdGroup(name);
            adGroupActivities.attachAdGroupToCampaign(name, campaignId);
        } catch (Exception e) {

            while (!executionStack.empty()) {
                CallResultEntry callResultEntry = executionStack.pop();

                Method method = adGroupActivities.getClass().getMethod(callResultEntry.getMethodName() + "Revert", callResultEntry.getResult().getClass());
                method.invoke(adGroupActivities, callResultEntry.getResult());
            }

            throw new Exception("Repeat please");
        }

        return this.adGroupId;
    }
}

I'm just curious, how deep Cadence is able to clone workflows? Will execution stack be copied and then reconstructed in case of worker failure?
In the code, i'm assuming, that my activies always have methodA and methodARevert methods available.

Yes, the execution stack is reconstructed and the code you wrote at the first look glance looks reasonable. See the webcast that explains how the state is reconstructed. Minutes 7 to 20 contain the explanation.

@mfateev  I saw the Saga pattern implementation in Temporal, is this the answer to the more generic model for workflow rollbacks?
https://github.com/temporalio/samples-java/blob/master/src/main/java/io/temporal/samples/bookingsaga/TripBookingWorkflowImpl.java

@mfateev  I saw the Saga pattern implementation in Temporal, is this the answer to the more generic model for workflow rollbacks?
https://github.com/temporalio/samples-java/blob/master/src/main/java/io/temporal/samples/bookingsaga/TripBookingWorkflowImpl.java


Infinite file uploads

We can already upload files on the initial deploy, up to 90 MiB during the Rust compilation to Wasm. These assets are specified with the assets property of dfx.json. We would like to allow larger files to be uploaded. To do this, I am thinking that they must be chunk uploaded in chunks of 2 MiB to stay under the message limit, and they must be aggregated in the canister and written to the file system.
Keep in mind authorization, we will need to figure this out. The Azle autoreload functionality is doing chunk uploading of just one file, and it doesn't write that file to the file system in the canister, it just keeps it in memory and then uses that to reload the JS runtime. It uses an agent locally in the Nodejs process that does the uploading, but it does so without any kind of authentication.
For these large files to work we will need authentication and to write the files to the filesystem. It would also be great to have these files, or maybe the assets on deploy, automatically uploaded somehow if they are changed...hmmm...maybe we should think about that one. If the files are very large then perhaps we would not want them to be automatically uploaded.
Anyhow, thinking about automatic uploading of assets is probably part of this issue, no assets are currently uploaded during auto-reload even if they are small and quick. This could be desirable for example for a frontend using Express static.

[x] src/compiler/file_watcher/file_watcher.ts shows how to do a basic chunk upload
[x] Write everything into the filesystem in the canister
[x] Basic unauthenticated assets_large dfx.json API
[x] Create post_install node script
[x] Upload entire directories
[x] clear the global hashmaps at the end and/or as we go
[x] Create npx command that will automatically upload files into an azle canister, just point and shoot
[x] chunk write the files to disk
[x] Add throttling so we don't overload the replica as per this forum post
[ ] push it to it's max (test until it breaks, if 1GB works, to a 2 etc until it breaks)
[ ] Be able to upload any size file up to the heap limit (~4 GiB)
[ ] be able to tests await in order, vs set time out, vs a manual call that returns if you need to call again
[ ] make a hash of the file as you go for testing
[ ] see if there is a way to store that hash for later if we want to compare hashes to determine if the file needs to be uploaded or not.
[ ] find all the possible bottle necks when large files come into play
[ ] Tackle authentication
[ ] think about if you have mulitple developers with the same time stamp trying to upload

Time trial info

A file with 100MB of random bytes was broken up into 53 chunks and was uploaded successfully
A file with 175MB of random bytes was broken up into 92 chunks and was not

Of the upload updates called only one had to be retried from a 429 (Too Many Requests) error
All of the chunks uploaded fine but the write broken when it tired to collect the various parts into one list

In the current system it takes about 15 seconds to upload and write a 152 MB file. Adding a single await took our time to upload the same file to 2 minutes and 50 seconds. I'm going to go ahead and work towards chunk writing the files

With throttling a 175 MiB file took less than 56 seconds to upload
With throttling a 152 MiB file took 48 seconds to upload
Without throttling (because the await is enough throttling on it's own) but with chunked uploading the 152 MiB upload awaited was 2 minutes 54 second.

Time trials:

Size
Background w/ throttling
Await throttled by await

1 GB
5 min
20 min

100 MB
30 sec
2 min

10 MB
4 sec
12 sec

1 MB
50 ms
60 ms

Important! I don't think we can hash as we go, because the order we do the hash in matters. So just like writing, we need to collect the hashes and do them all afterwards at the end.

I had this idea while we for tests back before we had to really do a lot of throttling. The idea was to check if the file existed before proceeding with the test, and if not, wait a little bit before failing the test, just in case it was still in the middle of an upload. One limitation is that since we have to write in chunks the file will exist before the file is completely written to. So maybe we could do something to work around that. Either way, with the trotting as it now is, it doesn't matter, waiting for a couple of seconds at the start is good enough.
  let attempts = 0;
  while (exits === false) {
      await new Promise((resolve) => setTimeout(resolve, 5000));
      let response = await fetch(
          `${origin}/exists?path=${canisterFilePath}`
      );
      exits = await response.json();
      if (attempts++ > 2) {
          return {
              Err: `File ${canisterFilePath} failed to upload`
          };
      }
  }

One of the things @lastmjs wants to do is write the file to disk as we go instead
of writing all the chunks after we receive them. The idea was to keep a list of all
of the chunks we received and what size they were so as we got another chunk,
we could write that chunk to the appropriate place in the file.
As far as I can tell there is no way to just insert the contents into the middle
of a file. Every technique I have found for doing this requires some sort of
shifting or copying the existing values to later on in the file to do the insertion.
So in the event that need to write a new chunk into the middle of a large file
we would quickly run out of cycles as we try and read the rest of the file into
memory, or if not when reading it into memory, then surely as we were
writing it back to disk.
So if we want to write the file as we go then we have to make sure the chunks
come to us in the right order, or we need to stop and they need to try again.
With the throttling we are really very likely to receive the chunks in order.
But if somehow one sneaks out of order, that would cause a lot of possible
retries on the client end. If it throws off their timestamps then it will be
a complete restart. But it could be a requirement we make for ourselves.
Awaiting each call to the canister would insure that we are sending them in the
right order, but that would drastically slow down the process.


Allow for windowless run

Sometimes we want these to run in the background

don
-nw no windows
-nwo no windows & their output


Truncate token prefixes for long cluster ids

When an SA is created, Token Controller creates a token for it; that
token's name is auto-generated, with a random suffix, and is at most
63 characters in length, of which 5 are random. Since we look for the
generated token by name, we need to take this into account, and
truncate the prefix using the same rules as the token generator.
Fixes: #1426
Signed-off-by: Stephen Kitt<EMAIL_ADDRESS>

Backported as https://github.com/submariner-io/submariner-operator/pull/1473.

Backported to 0.8 as #1474.


Edit command does not give helpful error message for 0 or negative numbers

The error message can highlight the index instead of just showing full command format

A general command usage message would suffice in my opinion since this is also the origin response for AB3. Although, I do agree with you that segmenting the messaging could improve user experience.


dependency is not resolving and throwing error

com.github.mirromutth
r2dbc-mysql
0.2.0.M2

throwing:missing artifact com.github.mirromutth:r2dbc-mysql:jar:0.2.0.M2.
what to do ?

Sounds like same issue as #47 ?

Ping @nikkisingh111333 .
I have published 0.8.0.RC1 to the Maven Central Repository, see README please. If problem still exists, please reopen the issue.


Add subgraph attributes for cluster

This change adds subgraph attributes. Note that this only work for
subgraph name whose starts with cluster:
https://graphviz.org/Gallery/directed/cluster.html

@TristanCacqueray: Thank you! 🙂

For its worth I used dhall-dot to create the graphs of this blog post with this source and https://sketchviz.com .
Thank you for writing the dot package, it is very useful :-)

@TristanCacqueray: You're welcome! 🙂


Not able to expand folder tree Chrome

如果反馈BUG，请提供以下信息，如果可能，同时提供英文描述，谢谢。

Transmssion 版本:
Tr Web Control 版本:
浏览器名称及版本：
问题描述:

For English User
Please provide the following information.

Transmssion version: 2.94 (0), RPC: 15
Tr Web Control version: 1.6.0 alpha (20180418)
Browser name & version：Mac OS - Google Chrome Version 67.0.3396.79 (Official Build) (64-bit)
Problem description: Hi,
Am not able to expand folder tree from left pane navigation using Chrome.

I know that it works with Firefox and Safari but Chrome is my primary browser.
Could you please fix this.
Thanks,

For some reason now am able to expand the tree.


Normalise models BCI

cf #457

LGTM. I checked the main EEGModuleMixin class, the deprecation function and 3-4 classes adaptations (not all of them).

@robintibor @agramfort @bruAristimunha what do you think about replacing the model param ch_names by chs_info (a list of dict)? So that we can pass all the information available in epochs.info[‘chs’] to the model.


Add RAM requirements to project application form.

Description:
Can RAM requirements also be added to the list, we have some users who are likely to request low numbers of cores but a lot of RAM

Fixed in https://github.com/tystakartografen/cogs3/commit/49f502bdbc71678bb41fee8514a6b825ca0a4951.


Loading embeddings to save time to re-analyze the image

For SAM1 I could do:
`
if exists:
logging.info(f"Embeddings already exist. Loading from: {embeddings_path}")
model.load_image_embedding(embeddings_path)
else:
logging.info(f"Embeddings do not exist. Saving to: {embeddings_path}")
model.set_image(input_data['image'])
model.save_image_embedding(embeddings_path)
   input_box = input_data['box_coordinates']

    masks, _, _ = model.predict(
        point_coords=None,
        point_labels=None,
        box=input_box[None, :],
        multimask_output=False,
    )

`
When I tried the same approach with SAM2, the predict call fails with "Must set_image before calling predict" error.
However calling setImage takes a long time, so it looks like loading the embeddings to speed up processing is not working for me with SAM2.
I am curious if there's a simple solution to this problem!

It doesn't look like there's a built-in function for this in v2, but it should be possible to save and load manually with something like:
# Save existing embeddings
save_data = {
  "_features": model._features,
  "_is_image_set": model._is_image_set,
  "_orig_hw": model._orig_hw,
  "_is_batch": model._is_batch,
}
torch.save(save_data, embeddings_path)

# Load embeddings
loaded_data = torch.load(embeddings_path)
model._features = loaded_data["_features"]
model._is_image_set = loaded_data["_is_image_set"]
model._orig_hw = loaded_data["_orig_hw"]
model._is_batch = loaded_data["_is_batch"]


disable debug output unless new option debugOutput set to truthy value

New option debugOutput if set to a truthy value will enable the console.log statement. This cleans up the console when in production.

The change to App.svelte may not be required. As I was building a bundle from merging my branches
I noticed build warned that the variable def in App.svelte was unused. I included it because I was
monkey see/monkey do for the change for placeholder. I removed the change to App.svelte and the code/bundle
still works.


WHATTOSYNC /var/log syncs /var/log/log instead

Hello,
first of all, I would like to say HUGE thank you!
I've started with raspberry pi just recently and was very please, finding this tool.
I'm having some problems though.
I'm running raspbian stretch. To preserve my SD card, I did following:
/etc/fstab
proc                  /proc           proc    defaults          0       0
PARTUUID=206c7db9-01  /boot           vfat    defaults          0       2
PARTUUID=206c7db9-02  /               ext4    defaults,noatime  0       1
#Directories in ram
tmpfs                 /rdisk          tmpfs    nodev,nosuid,size=50M 0 0

/etc/asd.conf
WHATTOSYNC=('/var/log' '/var/tmp' '/home/pi/.homeassistant/database')
VOLATILE="/rdisk"

asd p
Anything-sync-daemon v5.85 on Raspbian GNU/Linux 9 (stretch)

 Systemd service is currently active.
 Systemd resync service is currently active.
 Overlayfs technology is currently inactive.

Asd will manage the following per /run/asd.conf settings:

 owner/group id:     root/0
 target to manage:   /var/log
 sync target:        /var/.log-backup_asd
 tmpfs target:       /rdisk/asd-root/var/log
 dir size:           2.4M
 recovery dirs:      5 <- delete with the c option
  dir path/size:     /var/.log-backup_asd-crashrecovery-20180120_123416 (1.5M)
  dir path/size:     /var/.log-backup_asd-crashrecovery-20180120_122307 (1.5M)
  dir path/size:     /var/.log-backup_asd-crashrecovery-20180120_122112 (1.5M)
  dir path/size:     /var/.log-backup_asd-crashrecovery-20180120_120742 (1.5M)
  dir path/size:     /var/.log-backup_asd-crashrecovery-20180120_120250 (1.5M)

 owner/group id:     root/0
 target to manage:   /var/tmp
 sync target:        /var/.tmp-backup_asd
 tmpfs target:       /rdisk/asd-root/var/tmp
 dir size:           0
 recovery dirs:      5 <- delete with the c option
  dir path/size:     /var/.log-backup_asd-crashrecovery-20180120_123416 (1.5M)
  dir path/size:     /var/.log-backup_asd-crashrecovery-20180120_122307 (1.5M)
  dir path/size:     /var/.log-backup_asd-crashrecovery-20180120_122112 (1.5M)
  dir path/size:     /var/.log-backup_asd-crashrecovery-20180120_120742 (1.5M)
  dir path/size:     /var/.log-backup_asd-crashrecovery-20180120_120250 (1.5M)

 owner/group id:     pi/1000
 target to manage:   /home/pi/.homeassistant/database
 sync target:        /home/pi/.homeassistant/.database-backup_asd
 tmpfs target:       /rdisk/asd-pi/home/pi/.homeassistant/database
 dir size:           328K
 recovery dirs:      none

The problem is, that symlink to /var/log isn't created. When I cd into /var
drwxr-xr-x  5 root root       4096 Jan 20 12:02 log
lrwxrwxrwx  1 root root         23 Jan 20 12:34 tmp -> /rdisk/asd-root/var/tmp

It works for /var/tmp, /home/pi/.homeassistant/database but not for the /var/log.
There's symlink for /var/log/log instead /var/log
pi@raspberrypi:/var/log $ ls -l
lrwxrwxrwx 1 root      root          23 Jan 20 12:02 log -> /rdisk/asd-root/var/log

Please could you help me to find what the problem is, or is this a bug?

I got the same issue on this, on the same platform i.e. Rasbian Stretch, any updates why?


Mute Violations, Especially on Initial Setup

When installing Forseti for the first time in a running organization, it's almost a given that Forseti will be very unhappy about all types of historical choices the user made.
Rather than nag the user incessantly, perhaps we should consider implementing an easy way to 'mute' a rule or violation, where the user acknowledges it is 'a fair point' but they will work on it and at some point need to be re-reminded?
The alternative - notification numbness or someone removing the rule by force are less desirable.

This issue has been re-raised by @MartenvanWezel as a product priority, that would be useful for multiple users.

This should align with any work that we do roundtripping status from CSCC. I'm going to close this issue (esp since we haven't worked on it since it was opened), and we'll add this to future work if/when we do the CSCC stuff.