Implement some Int operations

Implemented the three remaining tests for the unary operators (+, -, ~) and some for binary &.
I'm not sure what to do with the remaining tests for &, I can't seem to run them:
AttributeError: type object 'BinaryIntOperationTests' has no attribute 'test_and_bytearray'
RuntimeError: Unknown constant type <class 'bytes'>
Refs #36

Fantastic work! Thanks!
There's one more small change required: your PR causes one test to be an unexpected pass, which is flagged by the CI build: tests.datatypes.test_int.InplaceIntOperationTests.test_add_bool (Note - it's the inplace tests, not the binary test). If you remove the line that puts that test in the not implemented list, the PR should be ready for merge.
Regarding the problems with bytearray test - I think you'll be able to see the source of the problem if you look at the source code for types/ByteArray.java itself :-) If you're looking for your next contribution, filling that hole would be a great place to start.

Right - I have to admit that I was waiting for Travis CI to run the full set of tests since it takes so long.. I will remove that line.
Some questions though:
I am working my way through some of the other binary operators, but I was a bit mystified about how some particular tests are passing. Let's take tests.datatypes.test_int.BinaryIntOperationTests.test_and_bool for example. The Java implementation is hard-coded to return int 0, which is wrong, but it's not caught as the values in test_int.py don't include an odd number. Should I uncomment the '-37' so that it also has a negative, odd number like in the SAMPLE_DATA in utils.py? That makes the test_and_bool test fail as expected.
Also, do you have a preference for whether the class names are fully specified in the Java source files? For instance in /python/common/org/python/types/Int.java, sometimes the instanceof parameter is org.python.types.Int, sometimes it's just Float, which actually works perfectly fine and is easier to read.

The speed of the test suite is definitely a concern for me. It's the subject of issue #13; but it isn't an easy fix (at least, I haven't been able to think of one). I'm open to any suggestions on ways to make the testing faster.
Q1: I certainly won't warrant that the test framework itself is bug free. The problem you describe, and the fix you've proposed both make sense to me.
Q2: I completely agree that short names are easier to read... right up until there's a name collision and you find things failing because it's referencing the builtin type with a given name, rather than the Python type. I've been bitten by that a couple of times so far, which has led to me erring on the side of "explicit"  full naming of classes. This avoids any confusion, even though it is a lot more long-winded.
Again - I don't doubt that I've missed a few places, though. I don't think I'd consider that a "bug", per se; more a thing that I'd probably clean up if I noticed it and I was in the area.

Yes, I was thinking about avoiding the JVM startup and it certainly looks non-trivial. Also, I entirely missed that some of the package class names do overlap with the native boxed ones - good point.
I uncommented the '-37', and it raises this interesting failure, amongst others:
======================================================================
FAIL: test_power_float (tests.datatypes.test_int.BinaryIntOperationTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/cflee/Desktop/voc/tests/utils.py", line 499, in func
    self.assertBinaryOperation(x=value, y=example, operation=operation, format=self.format)
  File "/Users/cflee/Desktop/voc/tests/utils.py", line 520, in assertBinaryOperation
    """ % kwargs, "Error running %(operation)s with x=%(x)s and y=%(y)s" % kwargs)
  File "/Users/cflee/Desktop/voc/tests/utils.py", line 326, in assertCodeExecution
    self.assertEqual(java_out, py_out, context)
AssertionError: 'NaN\n' != '(2223.33566194017+4218.35887675393j)\n'
- NaN
+ (2223.33566194017+4218.35887675393j)
 : Global context: Error running x ** y with x=-37 and y=2.3456

----------------------------------------------------------------------

It seems that negative numbers raised to a non-integer exponent yield a complex number. As Complex is not implemented yet, I've added test_power_float back to not_implemented instead of removing -37 again, since that should be more useful for flushing out bugs.
Apart from that, the binary operations should be covered. I tried looking at the in-place operations, but the remaining ones seem non-trivial - for instance, supporting += 5.5 on an Int, as then the Int needs to change into a Float.
It seems like that would require the Int to encapsulate a Float, and then either the Int or the parent Object has to passthrough method calls to the Float if it's set. If there are other cases of these types changing, getting the Object class to determine the 'actual' object to call would be cleaner. Nonetheless, that sounds messy; I'm not sure if there's a better way.
(I'm much more familiar with Java than with Python, so please excuse me if I'm not so conversant with Python fundamentals. :grin:)

All looks good - thanks! Your instinct with adding test_power_float back to the "not_implemented" list looks right to me.
However, I'm a little surprised by the error you're seeing. A negative number raised to a float power shouldn't be generating a complex number, so there must be something else going on. If you do the same operation (-37**2.345) at the Python prompt, you definitely don't get a complex number, so I don't know what is going on there.
Regarding the changes required by inplace - that's a good point that I hadn't considered; more thought is definitely required. My immediate reaction is that it might be necessary to tackle that one a little higher up, in the of the INPLACE_ADD python bytecode. At that point, we'll be in a position to do the int->float conversion if necessary.
On a separate note: this set of commits definitely qualifies you for a BeeWare challenge coin. Do you attend any Python conferences? If so, I can give you one in person; otherwise, I'll have to mail you one.

However, I'm a little surprised by the error you're seeing. A negative number raised to a float power shouldn't be generating a complex number, so there must be something else going on. If you do the same operation (-37**2.345) at the Python prompt, you definitely don't get a complex number, so I don't know what is going on there.

That was nearly the reaction I posted in my earlier comment, but after very long time poking through the source and the interactive shell, it seems to be an operator precedence issue:
>>> x = -37
>>> y = 2.3456
>>> x ** y
(2223.33566194017+4218.35887675393j)
>>> -37 ** 2.3456
-4768.414105207686
>>> (-37) ** 2.3456
(2223.33566194017+4218.35887675393j)
>>> (-37) ** 2
1369

Also, the Python 3 reference notes: "Raising a negative number to a fractional power results in a complex number. (In earlier versions it raised a ValueError.)" It was this that prompted me to check the precedence rules since that's the only explanation left.

Regarding the changes required by inplace - that's a good point that I hadn't considered; more thought is definitely required. My immediate reaction is that it might be necessary to tackle that one a little higher up, in the of the INPLACE_ADD python bytecode. At that point, we'll be in a position to do the int->float conversion if necessary.

Cool, this would make a lot more sense – I'm still trying to spelunk around the source to figure out how this whole thing works, so I was looking at it from a purely Java perspective.

On a separate note: this set of commits definitely qualifies you for a BeeWare challenge coin. Do you attend any Python conferences? If so, I can give you one in person; otherwise, I'll have to mail you one.

That's awesome! Not really, my experience largely revolves around web apps in PHP and Java, with a lot more Ruby and JavaScript lately, so I've really not involved in Python... I'll ping you via email!

Ah - that makes sense - good catch. I guess the fix here is to stick brackets through the test program so we can guarantee that operator precedence in the test is actually what we want to test.

FYI - I've just added parentheses to the test suite so the operator order should be unambiguous.

... or, on second thought - I've just reverted that change. The problem was with the manual testing, not the test suite. Note to self: don't code while distracted :-)

Yup, I was just about to comment - the test suite uses the x and y variables instead, so there's no impact from doing print(x ** y) in the test case. :grin:


Add logging to reflect when a cancellation was received and processed.

Reverts modal-labs/modal-client#2501 and fixes the tests the original PR broke.

@prbot approve


Add unbound_private option

This Pull Request adds a new option to the unbound module called unbound_private.
Setting it to YES will add a new line to the server section of the file generated by unbound_conf=<path> containing private-domain: "<domain>".
This automates adding the zone provided by (in my case) network managed to an unbound private domain. Without the option present unbound does not forward dns requests to the local dns server in my local network and I do not need to manually keep a list of private domain names anymore.
In order to add the second option I have refactored the shell script a bit, adding two new internal variables: create_unbound_insecure and create_unbound_private which are used to decide whether a server section should be created in the generated file.
I have successfully tested this on my own machine running NixOS with a Linux kernel, however I have not tested this on any other distro or any BSD derivation.

It appears I have broken the script when switching out spaces for tabs last minute.
I will force-push the branch to a working version momentarily.

I have made the changes you requested.

I will be review when back from holiday.

No worries, thanks a lot for taking the time to reply :)
Happy Holidays 🌴


Matlab code

Dear Footfall project developer ,
I wonder if you could provide and share the equivalent code in MATLAB programming language. (I am almost giving up on installing or setting up the current project on my RP2/3).
I can run simulink and/or MATLAB code from my Mac . I also installed hardware package for RP2/3 on the Matlab 2016a with no issue .
Thank you,
David

Hi @nc01315,
We built Footfall for C++, we don't have plans to convert this in to MATLAB
You can use some of the principles in the code in MATLAB.
Best


[flink][mysql-cdc] MySQL CDC supports convert TIME type to STRING type when using Hive catalog

Purpose

This is because Hive doesn't support TIME.

Tests
MySqlSyncTableActionITCase#testSpecialCastRules

API and Format

Documentation

Refactor cdc doc

Or can we just support this conversion in HiveCatalog?


[mandatory-inlining] Make cleanupLoadedCalleeValue more conservative.

Specifically, we may have a loaded callee value from a stack value. This change
just makes it so that we do not optimize if we do not actually have the box.
rdar://56386236

@swift-ci smoke test


GLFW_CURSOR_DISABLED not receiving input correctly when moving right and down

Happens when using the GLFW mouse capture and when the mouse is moved slowly to the right and down. I suspect this is because the cursor position is in integer values and the cursor is being reset in position before it can move a whole pixel.
Moving up and left is fine which make sense if the cursor is being positioned at the top left of a pixel so it does not have to travel far before entering the next pixel.
OS and version: Ubuntu GNOME 17.04
Release or commit: 3.2.1-1
Events: I moved my mouse slowly down and to the right until 24.250 where I changed to going up and left.
Library initialized
Creating windowed mode window 1 (640x480)
Main loop starting
00000000 to 1 at 0.335: Window was uniconified
00000001 to 1 at 0.335: Window position: 1104 121
00000002 to 1 at 0.335: Window refresh
00000003 to 1 at 0.335: Cursor entered window
00000004 to 1 at 0.335: Window focused
00000005 to 1 at 24.250: Cursor position: 1555.000000 -769.000000
00000006 to 1 at 24.454: Cursor position: 1555.000000 -770.000000
00000007 to 1 at 24.637: Cursor position: 1554.000000 -770.000000
00000008 to 1 at 24.640: Cursor position: 1554.000000 -771.000000
00000009 to 1 at 24.768: Cursor position: 1554.000000 -772.000000
0000000a to 1 at 24.799: Cursor position: 1554.000000 -773.000000
0000000b to 1 at 24.803: Cursor position: 1553.000000 -773.000000
0000000c to 1 at 24.903: Cursor position: 1552.000000 -773.000000
0000000d to 1 at 24.907: Cursor position: 1552.000000 -774.000000
0000000e to 1 at 25.049: Cursor position: 1551.000000 -774.000000
0000000f to 1 at 25.090: Cursor position: 1551.000000 -775.000000
00000010 to 1 at 25.188: Cursor position: 1551.000000 -776.000000
00000011 to 1 at 25.204: Cursor position: 1550.000000 -776.000000
00000012 to 1 at 25.921: Cursor position: 1550.000000 -777.000000
00000013 to 1 at 26.008: Cursor position: 1549.000000 -777.000000
00000014 to 1 at 26.028: Cursor position: 1548.000000 -777.000000
00000015 to 1 at 26.037: Cursor position: 1548.000000 -778.000000
00000016 to 1 at 26.218: Cursor position: 1547.000000 -778.000000
00000017 to 1 at 26.226: Cursor position: 1547.000000 -779.000000
00000018 to 1 at 26.228: Cursor position: 1546.000000 -779.000000
00000019 to 1 at 26.266: Cursor position: 1546.000000 -780.000000
0000001a to 1 at 26.285: Cursor position: 1545.000000 -780.000000
0000001b to 1 at 26.287: Cursor position: 1545.000000 -781.000000
0000001c to 1 at 26.302: Cursor position: 1544.000000 -781.000000
0000001d to 1 at 26.445: Cursor position: 1544.000000 -782.000000
0000001e to 1 at 26.551: Cursor position: 1543.000000 -782.000000
0000001f to 1 at 26.570: Cursor position: 1543.000000 -783.000000
00000020 to 1 at 26.572: Cursor position: 1542.000000 -783.000000
00000021 to 1 at 26.584: Cursor position: 1541.000000 -783.000000
00000022 to 1 at 26.589: Cursor position: 1541.000000 -784.000000
00000023 to 1 at 26.606: Cursor position: 1540.000000 -784.000000
00000024 to 1 at 26.611: Cursor position: 1540.000000 -785.000000
00000025 to 1 at 26.639: Cursor position: 1540.000000 -786.000000
00000026 to 1 at 26.692: Cursor position: 1540.000000 -787.000000
00000027 to 1 at 26.730: Cursor position: 1540.000000 -788.000000
00000028 to 1 at 26.814: Cursor position: 1539.000000 -788.000000
00000029 to 1 at 26.839: Cursor position: 1538.000000 -788.000000
0000002a to 1 at 26.995: Cursor position: 1538.000000 -789.000000
0000002b to 1 at 27.027: Cursor position: 1537.000000 -789.000000
0000002c to 1 at 27.054: Cursor position: 1536.000000 -789.000000
0000002d to 1 at 27.081: Cursor position: 1536.000000 -790.000000
0000002e to 1 at 27.083: Cursor position: 1535.000000 -790.000000
0000002f to 1 at 27.148: Cursor position: 1535.000000 -791.000000
00000030 to 1 at 27.155: Cursor position: 1534.000000 -791.000000
00000031 to 1 at 27.225: Cursor position: 1534.000000 -792.000000
00000032 to 1 at 27.234: Cursor position: 1533.000000 -792.000000
00000033 to 1 at 27.257: Cursor position: 1533.000000 -793.000000
00000034 to 1 at 27.321: Cursor position: 1532.000000 -793.000000
00000035 to 1 at 27.327: Cursor position: 1532.000000 -794.000000
00000036 to 1 at 27.368: Cursor position: 1532.000000 -795.000000
00000037 to 1 at 27.395: Cursor position: 1532.000000 -796.000000
00000038 to 1 at 27.400: Cursor position: 1531.000000 -796.000000
00000039 to 1 at 27.459: Cursor position: 1530.000000 -796.000000
0000003a to 1 at 27.492: Cursor position: 1530.000000 -797.000000
0000003b to 1 at 27.533: Cursor position: 1530.000000 -798.000000
0000003c to 1 at 27.571: Cursor position: 1530.000000 -799.000000
0000003d to 1 at 27.574: Cursor position: 1529.000000 -799.000000
0000003e to 1 at 29.184: Key 0x0156 Scancode 0x0040 (LEFT ALT) (with no mods) was pressed
0000003f to 1 at 29.262: Cursor left window
00000040 to 1 at 29.416: Window defocused
00000041 to 1 at 29.416: Key 0x0156 Scancode 0x0000 (LEFT ALT) (with no mods) was released

If possible, try using the master branch. Disabled cursor motion is now based on raw events where available.

I tested both, the 3.2.1 release and the master, and the master branch indeed solves the issue present in 3.2.1.


V2 Fix --latest for podman diff commands

--latest now forces container diff
diff options now passed into domain layer
updated help/usage messages

Signed-off-by: Jhon Honce<EMAIL_ADDRESS>

lgtm

LGTM

LGTM and happy green test buttons.

/lgtm


🚀 Feature: Possibility to return 0 exit code when tests run successfully even with fails

Is your feature request related to a problem or a nice-to-have?? Please describe.
A clear and concise description of what the problem is. E.g. I'm always frustrated when [...]
Sometimes it is useful to separate situations when tests run successfully, and there is no infrastructure or runtime problems, and when there are some runtime problems.
Possibility to return non-zero exit code only on infrastructure or runtime problems make easier integration with different toolchain.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Flag, something like failOnFailingTests like in Karma (https://github.com/karma-runner/karma/blob/master/docs/config/01-configuration-file.md#failonfailingtestsuite).

0 exit code when tests run successfully
1 exit code when something went wrong

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Karma
https://github.com/karma-runner/karma/blob/master/docs/config/01-configuration-file.md#failonfailingtestsuite
Additional context
Add any other context or screenshots about the feature request here.

Sometimes it is useful to separate situations when tests run successfully, and there is no infrastructure or runtime problems, and when there are some runtime problems.

I didn't understand it. Could you explain more detail for usecases.

Using Mocha in some build tools (for example Gradle).
After Mocha successfully run, I know test status via custom loader. Then I provide test results to "parent" build system and doesn't matter on Mocha exit code. Further results will be processed, and I don't want to fail "parent" build system.
But it does matter if there is some problems with infrastructure (for example Node problem). And in this case I want to get non-zero exit code of Mocha and force to fail "parent" build system.
But for now I have to fail of "parent" build system on both cases, when tests are failed which is valid situation for "parent" build system, and infrastructure problem (syntax problem e.g.) which is invalid situation for "parent" build system.
If I ignore exit code of Mocha, there is no fail on failed tests (and it is OK) and on infrastructure problem (and it is not OK)

@boneskull Thank you for reply.
I don't need any result as "passing", I think that in TS I incorrectly expressed the thought.
Let's imagine we have states:

Tests passed and run successful - 0 failed tests and 0 zero code
Some tests failed but run successful - some failed tests and 0 zero code
Run failed - some infrastructure problems (for example don't find some critical module)

I want to get zero code only if no "infrastructure" problem. If I run mocha <args> || true I get zero code even in this case.
It is similar with next property in Karma
https://github.com/karma-runner/karma/blob/master/docs/config/01-configuration-file.md#failonfailingtestsuite

Note that this is related to, but does not intersect with #3559. #3559 is about changing what the non-zero exit code is on case of non-passing tests. This one is about switching to a zero exit code even when there are non-passing tests.

Published in<EMAIL_ADDRESS>🚀


Order things alphabetically

Orders topics, subtopics, articles alphabetically by title in the Chime interface and on the generated site.
Closes #415

Note: To get this to work on your development installation, cd into your chime/jekyll/ directory and run bundle update directory-structure-generator


New announcement and added decipher to the team

Fixed.

👍 Merging

Good job guys :) Great to see some live breathed into this!

Thanks! Our pleasure.


Do not mark cpp source files as executable

These cpp source files were marked as executable for whatever reason.
Since there is no point in marking source code executable we can remove
the flag.

Thanks!


Defines in header pollutes global scope

There are two defines in SIMDString.h that are not undef at the end of the file:
#define m_allocated m_hider.data
#define m_allocator m_hider

This two defines should be undef at the end of the file, just like the TEMPLATE define.

This has been fixed in https://github.com/RobloxResearch/SIMDString/commit/80d371c28a504d9283e68e45902a04af77d5783a


Add support for Series in the duplicate check

            #TODO: Add support for Series in the duplicate check

https://github.com/jceresearch/pydit/blob/ac583f0f71f3b426f9ce2dd8f98030f2e31b0efc/pydit/pydit_core.py#L469

Completed this was implemented for series and dataframes.


[Bug]: Containers not shut down between tests when using .withReuse(true) but env. does not support reuse

Module
Core
Testcontainers version
latest from master and 1.19.4
Using the latest Testcontainers version?

Using Spring Boot Testcontainers, when an environment does not support "reuse" but container.withReuse(true) is set, containers are not shutting down between tests, resulting in a pile-up of container instances that wait until all the tests are finished before being shut down.
I tracked it down to the following:
When an environment does not support container reuse (i.e. .testcontainers.properties does not have testcontainers.reuse.enabled=true), but a container is set up using container.withReuse(true), Testcontainers-Java framework (in GenericContainer.tryStart()) decides that the container is not reusable. However, the isShouldBeReused() method continues to return true, because it only reflects the values set by .withReuse(), and not the fact that the container cannot really be reused because of the environment.
Spring Boot Testcontainers module in TestcontainersLifecycleBeanPostProcessor.postProcessBeforeDestruction() checks container.isShouldBeReused() and decides it will not shut down the container even though the container cannot be reused because the environment does not support it.
Relevant log output
No response
Additional Information
I'd happily provide a PR for the fix, but I'd need some input on the desired approach. I see several options.

Change .withReuse() to take into account whether the environment and container implementation support reuse (canBeReused() is also the existing method). E.g.

public SELF withReuse(boolean reusable) {
        this.shouldBeReused =
            reusable && TestcontainersConfiguration.getInstance().environmentSupportsReuse() && canBeReused();
        return self();
    }

Leave withReuse() as is, but change isShouldBeReused() to return reusable && TestcontainersConfiguration.getInstance().environmentSupportsReuse() && canBeReused().

Leave withReuse() and isShouldBeReused() as is, but introduce another getter isReused() that would hold the reused value determined in tryStart(), which would indicate whether the container has really been reused or not. This would be an API change requiring clients to change. (BTW, I've created a related ticket in Spring Boot Testcontainers.)

Hi @jgracin, sorry for the delay. We would like to follow approach number 3, there is already a reusable variable that store the final value. Are you still willing to contribute?

Thanks for reporting @jgracin, it seems it has now been fixed downstream in Spring-Boot:
https://github.com/spring-projects/spring-boot/commit/f210d83062422af46bb91c256b45e12e30f6dcf1
I think it is totally fine like this and we can close the issue on our side.


banshee: Add support for fmv.x.w and fmv.w.x

This should implement the fmv.x.w and fmv.w.x instructions. Not sure if it's correct, open for criticism ;)

I think this doesn't do what you want at the moment. The implementation now reads the integer register rs1 and stores it to the integer register rd. You probably want to read from integer rs1 and store to float rd, and vice versa for the other instruction :-) My suggestion would be to add a separate match above the current stuff in the function and only check for the fmv.*.* operations there. This way you can carefully use read_freg, read_reg, write_freg, and write_reg as appropriate (which will help keep the trace clean :-) ).

Oh of course, I had no idea what I was doing. Will look into it

Thanks a lot for tackling this! 👍


Alchemy. Symbol of Gold.

Symbol of Gold.

I'm sorry, but no use case was provided and this would be a duplicate of https://lucide.dev/icon/circle-dot


Add seen plugin

Cardinal should say what the last action it saw of a user was, and where. Just track nicks - don't try to alias users.

Enabled by default in 19191f973cbea1b2001f6812f9b4004d777c6b03.


Initial upload of CP3 network policies

Contributes to https://github.ibm.com/IBMPrivateCloud/roadmap/issues/58737 .
Added network policies for IM, Mongo, CS-operator and EDB. Added a stop-gap network policy for Zen, before the fine-grained one is provided.
cc @bitscuit @ujjwalchk-it

Hi @pgodowski
Please bear with me to switch the target branch from scripts to scripts-dev branch.
We will sync up two branches by end of day.


Still in preview?

I thought this feature went GA in September, the heading of the page still says its in preview. What is correct?

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

ID: 91ad4424-8d90-7947-2f95-aec67acfec45
Version Independent ID: 0ebfde0e-5597-fed9-f87c-761fd778fb25
Content: Combined registration for Azure AD SSPR and Multi-Factor Authentication (preview) - Azure Active Directory
Content Source: articles/active-directory/authentication/concept-registration-mfa-sspr-combined.md
Service: active-directory
Sub-service: authentication
GitHub Login: @MicrosoftGuyJFlo
Microsoft Alias: joflore

@sebhe Thanks for the feedback! We are currently investigating and will update you shortly.

Yes - This I was under the same impression. Could you please inform us when it is now going to GA?

@VikasPullagura-MSFT  - Looking for an update please? This is a huge change that will impact our tenant and we are basing a large communication decision based on it.

No it is still in preview. It was refreshed from an earlier preview version.

#please-close

The PM is working towards GA but no timeline that can be shared as of yet.

When is it going to GA? Microsoft already communicated via Azure Portal Announcements it was going to GA and that change neve happened.

@sebhe, This feature is still in preview and we have not received any timelines yet for it to be available for GA. The PMs are already updated about the ask for a timeline from customers and hence they are working on the same. We are expecting an update soon, but as of now we do not have any update with the timeline for this feature to be in GA.

#please-close

At least link us to the M365 Roadmap item, the timeline tends to be communicated there first anyways.


Updated apps and formatting.

Updated system apps.
Sorted system apps by name.
Moved provisioned apps to the top as they seem most relevant to it pros.

@Borkason Thanks for your contributions, we'll get your updates merged.


Option to ignore stale jobs

rqscheduler command should take an argument that allows it to ignore stale jobs (jobs that should have been enqueued long ago).
For example, running rqscheduler --stale-threshold=3600 will not enqueue jobs that are scheduled to run more than an hour ago.
Better option name suggestions welcome :)

The naming is aways hard;)
If here to ignore the stale jobs when running scheduler at the first time. how to distinguish the stale jobs and the normal jobs later.


Initial backend implementation for submission interoperability (EXPOSUREAPP-2266)

Description
This PR implements the new protobuf spec for submission of keys that are federated to the EU Servers.
The base branch is currently equal to a new feature branch, i suggest using this branch to aggregate all the interoperability features.

Closed as it's implemented in #1202 as mentioned from @MertSafter : https://github.com/corona-warn-app/cwa-app-android/pull/1072#discussion_r492594927


fix: timestamps to uint128 on StakingPool contracts

Purpose for this PR
Sets type to uint128 for timestamp values

Ah, this change will affect struct packing 🤔
@afkbyte what are your thoughts on widening the timestamps?

LGTM, the tests & framework also need updating ...but I've put that into another ticket https://github.com/windranger-io/windranger-treasury/issues/312

Ah, this change will affect struct packing`

Oh my bad, scratch this 😅
I think the only reason I had to make the change was to get the deploy script to run, its using the latestBlock.timestamp as the epochStartTimestamp which was throwing errors. I remember reading that any uint smaller than 256 is treat as a 256 by solidity, is that bad information?

Ah, this change will affect struct packing`

Oh my bad, scratch this 😅
I think the only reason I had to make the change was to get the deploy script to run, its using the latestBlock.timestamp as the epochStartTimestamp which was throwing errors. I remember reading that any uint smaller than 256 is treat as a 256 by solidity, is that bad information?

Ah, this change will affect struct packing`

Oh my bad, scratch this 😅
I think the only reason I had to make the change was to get the deploy script to run, its using the latestBlock.timestamp as the epochStartTimestamp which was throwing errors. I remember reading that any uint smaller than 256 is treat as a 256 by solidity, is that bad information?
It is true ...some of the time 😉

A word in Solidity is 256bits.
There is a gas optimisation call variable packing (for fields in a contract) and struct packing (for structs), where if there are multiple variables together in size smaller than 256 bits, they can be stored together to save gas (single read & write vs multiple)
e.g. https://www.maxgrok.com/posts/one-hundred-and-nineth-post#1-use-structs-packing-source-a-hrefhttpscryptozombiesioenlesson3chapter4cryptozombiesa

In Solidity timestamps (from block.timestamp) is uint256, so in theory using anything less could cause loss ...but that's a long way in the future problem..

I think maybe we should consider moving to 64 bits (from 32 bits) if the staking pool contracts are expected to run to 2038. https://en.wikipedia.org/wiki/Year_2038_problem

closing since i dont think realistically the pools will run until 2038, so overflow not a problem sufficient enough to worry about to forgo struct packing gas savings.


Add support for bulk actions

Is your feature request related to a problem? Please describe.
Bulk action is defined as a query with more parameters of the same type
Describe the solution you'd like
    hostsFile.BulkGetHostsFileLinesByIPs(ip1, ip2, ip3)
    hostsFile.BulkGetHostsFileLinesByAddresses(address1, address2, address3)
    hostsFile.BulkGetHostsFileLinesByHostnames(hostname1, hostname2, hostname3)

Should omit the Bulk word(?)


Refactor enigma

As discussed in https://github.com/ory-am/fosite/pull/18 and proposed in this comment, here is a work in progress PR for refactoring the token and code generation strategies.
@leetal I did not finish this for every handler and tests have not been fixed yet. But does this look like a good idea to you?

This all seems good! But i think we'll need to expose (or at least discuss alternate solutions to) at least one callback the developers can "subscribe" to by passing in a function that is called right before the ACCESS token is generated. A little like Osin does, but not the whole genration, just a little part of it. Since there is no way for a developer right now to actually modify the claims (for example) that is to be returned to the callee. What i mean is that for example one resource owner grants acces to his data, the developer might just, right before that access token is returned, fetch the resource owner data from DB and inject parts of that data into the JWT claims. I really don't want to hardcode any behavior except lease times and expire times in the lib. What would be counterintuitive with regards of the actual power and core strength of Fosite. I think i'll add such callback to the JWT mechanism by adding it to the JWTEnigma struct since probably no other auth method (except open id connect) can return data in the token.

I think this is already solved because we pass the user session object which is of type interface!
func (h HMACSHAStrategy) GenerateAccessToken(ctx context.Context, r *http.Request, ar fosite.AccessRequester, session interface{})

If the developer wants to use JWT, he needs to choose a session that implements for example some interface. In the JWT strategy you could do:
func (h jwt.JWTStrategy) GenerateAccessToken(ctx context.Context, r *http.Request, ar fosite.AccessRequester, session interface{}) {
    jwtSession, ok := session.(*jwt.Session)
    if ; !ok {
       return err
    }
    GenerateJWTToken(jwtSession.GetClaims())
}

The developer then might do:
// in token endpoint
// ... NewAuthorizeRequest
session := jwt.NewJWTSession()
session.SetSub("peter")
// ... NewAuthorizeResponse(..., session)
// ... Writeresponse
```go

Would that not be enough?

Yes, that will do for sure! :) Totally didn't think of that use for the
session, but as you said before, stateless behavior without hussle is
important!
Mvh
Alexander Widerberg
Vakans Linköpings universitet i programvaruutveckling
DatateknologsektionenLinköpings UniversitetMobil: 0763-471640
2016-01-14 22:07 GMT+01:00 Aeneas<EMAIL_ADDRESS>
I think this is already solved because we pass the user session object
which is of type interface!
func (h HMACSHAStrategy) GenerateAccessToken(ctx context.Context, r *http.Request, ar fosite.AccessRequester, session interface{})
If the developer wants to use JWT, he needs to choose a session that
implements for example some interface. In the JWT strategy you could do:
func (h jwt.JWTStrategy) GenerateAccessToken(ctx context.Context, r *http.Request, ar fosite.AccessRequester, session interface{}) {
jwtSession, ok := session.(*jwt.Session)
if ; !ok {
return err
}
GenerateJWTToken(jwtSession.GetClaims())
}
The developer then might do:
// in token endpoint
// ... NewAuthorizeRequest
session := jwt.NewJWTSession()
session.SetSub("peter")
// ... NewAuthorizeResponse(..., session)
// ... Writeresponse

Would that not be enough?

—
Reply to this email directly or view it on GitHub
<https://github.com/ory-am/fosite/pull/20#issuecomment-171779994>.

ok cool, i will implement this then :) thanks for your continued feedback, i honestly appreciate it!

The method signatures are in gernal too long and complex. I will replace them with context variables instead

http://play.golang.org/p/iq7iZfhiHm


The builder for route "null" returned null

I got the next code
`
void main() {
Function duringSplash = () async {
Auth _auth = new Auth();
if (await _auth.isLoggedIn()) {
return 1;
} else {
return 2;
}
};
Map<dynamic, Widget> op = {1: Login(), 2: BottomNavBar()};
runApp(
MaterialApp(
home: AnimatedSplash(
home: Login(),
imagePath: 'images/image1.jpg',
customFunction: duringSplash,
type: AnimatedSplashType.BackgroundProcess,
outputAndHome: op,
duration: 1000,
),
));
}
`
It returns I/flutter ( 5159): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter ( 5159): The following assertion was thrown building Builder(dirty):
I/flutter ( 5159): The builder for route "null" returned null.
I/flutter ( 5159): Route builders must never return null.
It says it should be an error on my runApp statement. But im doing exactly as your document says.

Hello..
Same problem here.
I would like to use Future for the cusotmFunction.
How implement it ?
Thanks for your help

I'm seeing this issue as well

I switched the "type" parameter from  AnimatedSplashType.BackgroundProcess to AnimatedSplashType.StaticDuration and that fixed the issue for me.

I switched the "type" parameter from AnimatedSplashType.BackgroundProcess to AnimatedSplashType.StaticDuration and that fixed the issue for me.

Wouldn't setting StaticDuration just always navigate to the screen you passed to home?
I'd also really like to use a Future result from the customFunction to decide which screen to show. Is that currently possible?


Update H2 database to 2.0.206

This PR updates the H2 database to 2.0.206. This is the latest version and a major release of H2. With this release, H2 now works with the latest version of the JTS. This transitive dependency prevented us in the past from updating the PostGIS JDBC driver to its latest version 2021.1.0, because also PostGIS JDBC depends on JTS.
Since H2 is used as local cache for the Importer/Exporter, this PR requires testing to make sure the cache works stable.

I have removed all database connection parameters that we manually added to increase the performance of the previous H2 version (see getJDBCUrl method of the H2Adapter class). Most of them are not supported in the latest version anymore, but there might be new or other connection parameters that we should consider in our tests (e.g. AUTO_ANALYZE=0 might be a candidate to add).


sbt: 1.9.3 -> 1.9.4

Description of changes
change log: https://github.com/sbt/sbt/releases/tag/v1.9.4
diff: https://github.com/sbt/sbt/compare/v1.9.3...v1.9.4
tested starting sbt server, running a scala app, compiling, compiling in watch mode
added myself as a maintainer of sbt

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 252233 run on x86_64-linux 1

2 packages built:

sbt
sbt-with-scala-native


Telemetry: Log improvement

Is this a BUG REPORT or FEATURE REQUEST?:

/kind bug

What happened:
Add validation for API parameters and log errors in logs. AS of now unknown driver type in POST call return 200 OK, but no inofrmation to the user that it is a unknows driver type.

Refer #875

/assign @NajmudheenCT


fix: spurious unsigned add and mul overflows

Fixes #581
We add signedness checks prior to doing an errOverflow, + add tests (i've also confirmed that 0x80000000 * 2 erroneously triggers an overflow warning).
Given this source:

If one operand is unsigned int and the other is int, the operator treats them both as unsigned.

It seems like it might be fair to check that both LHS and RHS are not unsigned, in order for the overflow warning to show.
@ehaas re: your suggestion to look at fn add() in Value.zig, it seems like enumerations and ++ also relies on that - so I did these checks up one level instead, if this is fair?

Can you add the check for subtraction and division as well?


change go to symbol in workspace shortcut to Include ALT

Fixes : #232381
Included Alt (option) for Go to Symbol in Workspace

Additionally, the proposal in this PR would have CMD+alt+T not CTRL+alt+T on macOS. You will need to use WinCtrl instead of CtrlCmd for macOS

but I’m not sure how to do this for the web (connect).

You can use these script scripts: ./scripts/code-server or ./scripts/code-web

Try running npm compile-web. This compiles extensions like TS for the web and I believe it only appears as not working while the true cause might be no extension support

@jrieken
tried running npm compile-web but that didn't help, I don't know why shortcuts like ctrl + alt + T is still not working in browser
can you just verify the changes in the code and tell me it is correct or not


Qt Implementation Dependency Injection?

The current system where quamash loads the first Qt Implementation it finds or one in an environment variable is hacky.
Additionally since _version_, _author_ and _license_ are loaded from _init_.py, a Qt Implementation (doesn't matter which one) needs to be available when setup.py is used. It would be nice if a source install could be done without PyQt/PySide being present. Even if that's unusual.
A lazy-load dependency injection type system that decides which Qt implementation to use at instantiation time could be really slick, or it could just be even more hackish.
@aknuds1 @horazont thoughts?

Maybe there could be a quamash.initialize function where you specify which Qt wrapper to use (i.e., 'PyQt4', 'PyQt5' or 'PySide'). Eventually, if you pass None, Quamash could pick one automatically. For example:
quamash.initialize('PyQt5')

Seems people think this is a good idea? All solutions require some
inspection/metaprogramming with regards to dynamically injecting a parent
class.
On Jan 9, 2015 4:47 AM, "Arve Knudsen"<EMAIL_ADDRESS>wrote:

Maybe there could be a quamash.initialize function where you specify which
Qt wrapper to use (i.e., 'PyQt4', 'PyQt5' or 'PySide'). Eventually, if you
pass None, Quamash could pick one automatically. For example:
quamash.initialize('PyQt5')
—
Reply to this email directly or view it on GitHub
https://github.com/harvimt/quamash/issues/16#issuecomment-69329966.

I am not sure I like that metaprogramming part. It may introduce a lot of complexity which can be easily avoided by putting QEventLoop (and related classes) into a separate module (e.g. quamash.eventloop) and requiring the user to configure quamash before importing (from) that module.
At least for a first iteration this seems more reasonable. Extending this to a more flexible approach should be possible in the future.

Well I'm thinking of the things that need to happen:
A subclass of QThread is needed to make QThreadWorkers (QThreadExecutor &
QThreadWorker could totally be moved to a new module)
QObject needs to be subclassed in order for call_soon_threadsafe to work,
but this QObject subclass with custom signal need not necessarily be
QEventLoop. Finally, some sort of generic factory to create QSocketListener
instances is needed.
I think that's it.
On Fri, Jan 9, 2015 at 1:36 PM, Jonas Wielicki<EMAIL_ADDRESS>wrote:

I am not sure I like that metaprogramming part. It may introduce a lot of
complexity which can be easily avoided by putting QEventLoop (and related
classes) into a separate module (e.g. quamash.eventloop) and requiring
the user to configure quamash before importing (from) that module.
At least for a first iteration this seems more reasonable. Extending this
to a more flexible approach should be possible in the future.
—
Reply to this email directly or view it on GitHub
https://github.com/harvimt/quamash/issues/16#issuecomment-69403089.

I'm working on this in https://github.com/harvimt/quamash/tree/depinject
It works just not on windows (yet)


Feat: Snippet of how to enable trailing and indentation warnings

Would be great to see how to enable mixed trailing and indentation warnings.

I'm not completely sure what's this .Do you mean to show trailing whitespaces ? And weather tabs used for indenting ? What does the 53 mean ?
Can you explain the idea further?

Ouh, you got it right. Thank you for the snippet. Will try to improve it.
[53] is the first line where the issue occur.
Not that important if formatters are in play, but not all files can be auto formatted.

I've added this version in https://github.com/shadmansaleh/lualine.nvim/wiki/Component-snippets for now. If you improve upon it and want to share you can put it there.

Hi
Any chance this can show the line of the trailing line as well? It seems searchcount could show the position but can't make it work.

It's surely possible. I'd like to have a proper component
for this but currently don't have time . You're welcome to make a pr . Else you'll have to wait I or someone else manage to do it.


fix(ci): bump go in testflight image and fix spruce dependency

Spruce was pulled in from apt.starkandwayne.com, which is not reachable anymore. Instead pulling the binary from GitHub releases directly.
Also replaces Go from the golang:1.20 image (currently 1.20.3)

We noticed that bosh/main-bosh-docker is not maintained anymore. This might be the starting point for a PR to move to a bosh/docker-cpi:main based image.

See also 2396cfa3fdeac213902d40431482f8522437edf8 in #334


Update of documentation for New-PnPTermLabel cmdlet

Type

[X] Bug Fix
[ ] New Feature
[ ] Sample

Related Issues?
Fixes #4515
What is in this Pull Request ?
PR adds a note about usage of IsDefault flag and an example how to create a synonym.

Thank you very much!


[dart2wasm] Improve hash codes of closures in dart2wasm

Currently dart2wasm closures use this as hash code:
class _Closure {
  ...
  int get hashCode => runtimeType.hashCode;
  ...
}

This can be a big issue for any code that uses closures in sets / maps (as we did ourselves for JS interop) as it will often lead to different closures (not identical, not ==) but with same hash code flowing as keys into maps / sets. This will make the map/set behave as a linear data structure instead of a O(1) data structure.
We'd want to use the identity hash code of closures (making == agree with identical) for get:hashCode - except for instance tear-offs and partial instantiations (where we have to use the torn-off receiver & partial instantiated types as part of hash code).
/cc @osa1 Maybe this is something you could have a look at?

Implemented in https://dart-review.googlesource.com/c/sdk/+/353162.


feat: Connect to bootstrap peers

When initializing the ipfs node, one is able to add bootstrap peers via UninitializedIpfs::add_bootstrap, which would add them to kademlia routing table, however if the protocol is disabled, then nothing happens. What we should do instead is connect to the peers if the protocol is disabled (or maybe ensure that the connection is made regardless of protocol status), and maybe make the connection persistent since manual entry would indicate some form of trust. The persistent connection would likely need to be done through its own behaviour with the connection handler being kept alive, though the bootstrap peers may or may not have the same conditions to keep the connection alive.

Note:

With #289 if the bootstrap peers are supplied to UninitializedIpfs::add_bootstrap, it will be added to the address book and will attempt to dial.


Fix MicrosoftGraphTransport to handle sending from alias (#26)

To send the email from an alias
After assigning Send As to the user set the following config.
add a new config to use alias as from address
'send_from_alias'=> true

full configuration will be as follows
'microsoft-graph' => [
      'transport' => 'microsoft-graph',
      'client_id' => env('MICROSOFT_GRAPH_CLIENT_ID'),
      'client_secret' => env('MICROSOFT_GRAPH_CLIENT_SECRET'),
      'tenant_id' => env('MICROSOFT_GRAPH_TENANT_ID'),
      'from' => [
          'address' => env('MAIL_FROM_ADDRESS'),
          'name' => env('MAIL_FROM_NAME'),
      ],
      'send_from_alias'=> true,
]

also create a new environment variable to set send from alias address
<EMAIL_ADDRESS>

@naifmhd,
Thanks for your contribution! Could you please clarify the purpose of the alias configuration you've introduced? How does it improve on simply modifying the MAIL_FROM_ADDRESS configuration directly? Looking forward to your insights!

This PR is closed due to inactivity. If you still think it is a good addition to this package, please open a new PR. Thanks!


Publicly documenting authoritative sources for bib data

Description
It would be good to capture somewhere publicly where the bib data comes from. Somewhere, relaton-data-rfcs, relaton-data-ieee, etc., should be explained--maybe a link off the About page, or maybe there's developer's documentation  in GitHub that can expanded.
For instance, it has been mentioned in issue discussions that the authoritative data for RFCs comes from rfc-index.xml provided by rfc-editor.org, but I can't find that documented in the code base or any readmes or About pages...
This file is basically an API and it should be tracked. The RPC will be making changes to their database in the next few years, and such existing APIs should be identified and managed.
Thanks!
Code of Conduct

[X] I agree to follow the IETF's Code of Conduct

I may have made an assumption about how the bibmxl-service pulls RFC bib data. Thus documentation of where the data comes from is even more important.

Digging through older tickets, I relocated this: https://github.com/ietf-tools/bibxml-service/wiki/Data-sources. Is the table still accurate? The discussion of sync from tools.ietf.org needs to be updated.

@rjsparks yes that page is accurate.
For W3C, we now have an extra repo that contains historic W3C documents since 2002 from the same endpoint (https://github.com/relaton/w3c-tr-archive). Would you be able to help update that row? Thanks!

I note also that links in the documentation have become broken.
https://bib.ietf.org/static/docs/topics/architecture.html has a link to https://github.com/ietf-ribose/bibxml-service/wiki/Relaton-sources. (which redirects to ietf-tools, but then finds no wiki page - I suspect it was intended to point to Data-sources instead)?

Would you be able to help update that row? Thanks!
Sure - but we should make it so that you could too. Anton and Vladamir already have the ability to do so, and we'll make sure you do to (I want to confirm with Kesara when his timezone comes online how he's started this config before adding changes).

Thanks @rjsparks , will wait for @kesara

bibxml-service wiki is configured so that it's only editable by people who have push (write) access to this repository.
At the moment Anton and Vladamir have that access.
These settings were inherited from ietf-ribose.

Thanks @kesara , I confirm to have received access to this repo. I believe when the repository was transferred, the permissions given to "Teams" originally assigned were removed, but permissions for individuals remained.

I see the link in documentation was fixed to point to  https://github.com/ietf-tools/bibxml-service/wiki/Data-sources thanks to Ronald. Combining docs and wiki, is documentation lacking?

https://github.com/ietf-tools/bibxml-service/wiki/Data-sources#xml2rfc-mirror-archive is stale.
Would it be hard to add a column to the table pointing to the code that ingests each source? (Labelled "as of version nnn"). Or if not a direct link to the code, at least a sentence that would help someone responsible for one of these sources look to see what the impact of a change to the source will have?

It would also be nice to capture how often data is fetched from each data source.

@rjsparks @ajeanmahoney  I've fixed the stale link, added links to the sources of the software, and added a frequency column.

@ajeanmahoney @rjsparks is the documentation now sufficient to close this issue? Thanks.

@ronaldtse : Close.
There are still some /ietf-ribose/ repositories called out that have moved already to /ietf-tools/, and we need to address https://github.com/ietf-ribose/bibxml-data-misc which has not moved yet?

bibxml-data-misc repository has been transferred to ietf-tools: https://github.com/ietf-tools/bibxml-data-misc


Ingress for SSO proxy

Hi, after deployment chart, i configured
keycloakGatekeeper:
  enabled: true
  url: https://keycloak.local/auth/realms/master
  clientId: testcli
  clientSecret: <secret>
  proxyPort: 4999

But as I can see ingres for octant https://example.com/octant redirect me to https://example.com/oauth/authorize?state=dadadsd which not evaliable.
What i do wrong? Thank you in advance

Resolved. Thank you for Your helm!


Content feedbacks

Hi! I just discovered this and it's honestly a good reading, especially the references and articles are pretty useful and I wished I had this when I started my journey into monorepos :) I'll try to leave aside things related to #18, but I believe some might be entangled, so sorry already.
1. npm monorepos vs others
It looks like the website has some bias towards npm-oriented monorepos (...because it's made by nx?).
The fact that Bazel is a truly language agnostic monorepo seems totally eluded under a simple "Consistent tooling" umbrella which consists of a single sentence but imho this is a major point to look at when searching for a monorepo solution.
At the time I've started my researches, this was probably the biggest point of decision: we had a tree of "npm/non-npm" monorepo solutions, and then either Bazel/Buck/Pants/Please or lerna/nx/rush. The questioning was mostly in planning, setting up, maintaining our monorepo. I'm not sure if you tried to setup a Bazel/Please monorepo but it is light-years away from setting up a nx/lerna/rush/turborepo monorepo which, even though are quite different between themselves, look all pretty similar compared to those non-javascript monorepos.
Either Bazel should not be here, or either imho you should have a separate section describing the pros/cons of Bazel-type (let's say BUILD-file based monorepos) vs more integrated/opinionated npm-oriented solutions. You may argue that "nx is pluggable" but a user would still carry the node runtime to build your stuff anyhow, where solutions such as Please have portable binaries to avoid such a cost (i'm talking about the monorepo toolchain, not the project's ones). On the other hand, by nature npm-oriented solutions will have greater focus/capabilities in caching dependencies because there's a greater relationship to npm, where broader monorepos would just elude this and delegate to either a language-specific toolchain or the build script itself. It's a game of pro and cons, but it should be stated.
...and if Bazel is here, i guess it's fair that related competition should also be represented: Buck, Pants, and Please (to only name those I've tried).
2. eluded pricing
There's also a great shade around the "opacity" of the toolchain and the features which claim to be available but not mentioned if free or paid. I think that, if you truly want to be informative you have to be impartial and shouldn't hide that some of nx and turborepo features are part of a paid plan. One of the major reason why we didn't choose nx at the time was the learning curve and the necessity for a staff to learn a framework - i think that nx is much more an hybrid of monorepo/framework due to the tons of generators/etc which come with (not that i dislike it personally, but it has to be said).

I realise typing this that it's a lot already so i'll stop there. Happy to help.

Thank you for opening the issue.
The main target audience for the website are JS folks. The support for other technologies is important cause a lot of JS workspaces have non-JS projects in them, but the focus in on JS. The main reason is that adding variability and covering the topic more generally makes it harder to compare and makes the resource less useful. Even in the current state having both Lerna and Bazel in the same list is a bit weird cause they are nothing alike. Nx is a lot closer to Bazel than Lerna, so comparing Nx and Bazel is coherent. Comparing them to Lerna is not as helpful.
In other words, the notion of a "monorepo" is already underdefined in the JS space alone, hence the confusion. Expanding the scope would make it even less concrete, so we decided against it.
In regards to what is free and paid, Nx (and I believe Turbo) allows you to run your own impl of the distributed cache or in case of Nx distributed builds. Some of our clients do :) So I'm not sure if there is a fundamental distinction here between say Bazel, Nx, and Turbo.  In case of Bazel, you will have to have some service that implements the Bazel remote build protocol. You can either implement and host it yourself or use an existing one.
We tried not to include any features of Nx Cloud that are very hard to implement yourself (UI, analysis, stats) even though those features are super important for any non-trivial monorepos (You cannot use a non-trivial workspace if they only way for you to view your CI logs is in Circle or Azure. Too unstructured, too much noise. You have to have custom UI.).


Emscripten test fails

Got error "EMSCRIPTEN_PATH MUST BE DEFINED!".
I point it to EMSDK value, maybe it's wrong, because it found Xcode compiler instead of emcc.
I think some steps are missing. Please point direction what to try.

I just realised that it's 5 years old. :) Was gonna ask why it's not using emconfigure cmake .


Update README.md

fix table in order

Thanks for your contribution. This table used to be rendered fine, something must have changed in Github markdown. Anyway, I didn't want to switch to HTML to render the table so I used the   instead (see commit 49478b4732e9e50afc708f78472da0cb3f15b66b.


:art: make intro to cloud ops more inclusive

We won't be just made up of engineers, reworded but looking for ideas

Made a little edit


Update dependencies to reflect Angular 8.x

When updating to Angular 8 I get:
Package "ng-oidc-client" has an incompatible peer dependency to "@angular/common" (requires "^6.0.0-rc.0 || ^6.0.0" (extended), would install "8.2.2").

Published new version v1.0.6, let me know if there are still any issues.


add return-alt.lua

Hmm. Looks like changing the default branch from master to main caused this pull request to be closed. That wasn't intentional, but then again this pull request has been hanging around for several years now, so I'll keep it closed until/unless someone chooses to revive it.


Use wss endpoint on TLS enabled

fixes #984

Codecov Report

Merging #989 (738c61b) into master (828364b) will decrease coverage by 0.79%.
The diff coverage is 58.44%.

@@            Coverage Diff             @@
##           master     #989      +/-   ##
==========================================
- Coverage   50.51%   49.72%   -0.80%
==========================================
  Files         145      146       +1
  Lines        7544     7769     +225
==========================================
+ Hits         3811     3863      +52
- Misses       3066     3228     +162
- Partials      667      678      +11

Impacted Files
Coverage Δ

pkg/config/consts.go
0.00% <ø> (ø)

pkg/config/loader.go
58.97% <0.00%> (+0.74%)
:arrow_up:

pkg/core/candidate/validator.go
57.14% <ø> (ø)

pkg/core/chain/legacy.go
26.08% <0.00%> (-2.49%)
:arrow_down:

pkg/core/chain/mock.go
8.33% <ø> (ø)

pkg/core/consensus/agreement/accumulator.go
83.01% <ø> (ø)

pkg/core/consensus/agreement/handler.go
56.14% <ø> (ø)

pkg/core/consensus/agreement/store.go
62.12% <ø> (ø)

pkg/core/consensus/agreement/testutil.go
100.00% <ø> (ø)

pkg/core/consensus/bidautomaton/bidautomaton.go
79.06% <ø> (ø)

... and 127 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 f5590ef...738c61b. Read the comment docs.


Least squares solver for MxN matrices using QR householder algorithm

For a control algorithm I'm working on, I am going to need this least squares solver. It does a QR decomposition using the householder algorithm.
User needs to make sure that:

Rank(A) = N
M >= N

Check the formatting. https://travis-ci.org/PX4/Matrix/jobs/427810779

Coverage decreased (-0.3%) to 99.701% when pulling 40ee3ce40f020ef64c5496a96aa10e48d801c3b1 on bartslinger:least_squares_solver into dc3af8097798881b9b2e72a029a3c6c10abd059b on PX4:master.


Not sure how basic_table_core::add is supposed to work

Either I'm doing something VERY wrong or misunderstanding how Lua/Sol2 works.
I am using the latest version of sol2 from vcpkg (sol2 3.2.2, lua 5.4.3#1).
Here's my use case (semi-pseudocode):
auto table = mScriptState.create_table();
for (int i=0; i<10; ++i) {
	auto t = mScriptState.create_table();
	table.add(t);
	auto c = table.size();
	cout << c;
};

As far as I can tell by reading the code, basic_table_core::add is implemented using stack::set_ref which in turn uses luaL_ref.
luaL_ref works by checking the element at index freelist which is (LUA_RIDX_LAST + 1) which is (LUA_RIDX_GLOBALS + 1) which is (2 + 1) which resolves to 3. If there is no element at freelist it sets it:
if (lua_rawgeti(L, t, freelist) == LUA_TNIL) {  /* first access? */
	ref = 0;  /* list is empty */
	lua_pushinteger(L, 0);  /* initialize as an empty list */
	lua_rawseti(L, t, freelist);  /* ref = t[freelist] = 0 */
}

Is it me or doesn't this mean that the first time basic_table_core::add is invoked, the table's [3] element is set to a number? Doesn't that create a non-sequential table which is, according to the docs, not usable with add itself?
In my case, after adding two elements, c (the table size) is 3, with element 3 being the integer 0.

Looks like I got the add code wrong for the 0-sized case. I'll need to take a look into fixing this up.


Add support for Servlets

Hi,
This is a feature request to add support for standard java web applications. I am in the situation where I need to start the appengine environment with Java servlets and web.xml style configuration. As I have seen currently appengine-magic currently only works with ring handlers.
Regards,
Razvan

appengine-magic should work fine in conjunction with Java servlets. When you run lein appengine-new, the task generates a war/WEB-INF/web.xml file pre-filled with everything necessary for the Ring handler, as a servlet. You can add other servlet handlers to the configuration. You'll have to figure out how to link building your Java and your Clojure code, but perhaps Leiningen can help there.
Let me know if you already tried this approach and it didn't work.

Well, I'm not using the ring handler. I have a java servlet to do the job. I want to use appengine-magic for the other services (like datastore). Currently appengine-magic.core/serve requires an "application" as parameter.
Razvan

Right, appengine-magic does need to be started in order to provide Google's services. Why don't you just make a placeholder application which does not serve up any HTTP requests? You don't even need to have it mapped in web.xml.

I tried to figure out what dev_appserver does and start it sometime in September 2010, ran into massive problems, and did what you see in appengine-magic today.
Rereading the thread, I finally realized that you're having trouble with using interactive mode. I see. The easiest solution is for you to modify appengine-magic.jetty to respect extra servlets mapped in web.xml. You'll have to figure out the right way of doing this from the Jetty API, and there are several reasonable approaches.


MPS Issue : view size is not compatible with input tensor's size and stride

🐛 Describe the bug
Hi,
I'm trying to training F-RCNN based on coco dataset on my images. Image size is 512X512
I've tested dataloader separately and it works and prints the batch images and BB details
Also i've tried to print the loss in NN and it does print the batch_mean as well and after that ERROR occurs.
This is the code
img_process = v2.Compose(
    [
        v2.ToTensor(),
        v2.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
    ]
)

class SCocoDetection(datasets.CocoDetection):
    def __init__(
        self,
        image_directory_path: str,
        annotation_path : str,
        train: bool = True,
        image_processor = None
    ):
        super().__init__(image_directory_path, annotation_path)
        self.image_processor = image_processor

    def __getitem__(self, idx):

        image, annotations = super().__getitem__(idx)
        images, targets = [], []
        image_id = self.ids[idx]

        for ann in annotations:
            bbox = ann['bbox']

            small = (bbox[2] * bbox[3]) <= (512 * 512 * 0.001)

            bbox = torch.tensor(bbox).unsqueeze(0).float()
            boxes = ops.box_convert(bbox, in_fmt='xywh', out_fmt='xyxy')
            #boxes = None
            #if not small:
            #    boxes = ops.box_convert(bbox, in_fmt='xywh', out_fmt='xyxy')
            #else:
            #    boxes = bbox
            boxes = boxes.float()
            output_dict = self.image_processor({"image": image, "boxes": boxes})
            images.append(output_dict['image'])
            targets.append({
                'boxes': output_dict['boxes'],
                'labels': torch.ones(len(boxes), dtype=int)
            })

        return images, targets

TRAIN_DATASET = SCocoDetection(

    image_directory_path='047/v2_coco_train/images',
    annotation_path='047/v2_coco_train/result.json',
    image_processor=img_process,
    train=True)
VAL_DATASET = SCocoDetection(
    image_directory_path='047/v2_coco_test/images',
    annotation_path= '047/v2_coco_test/result.json',
    image_processor=img_process,
    train=False)

print("Number of training examples:", len(TRAIN_DATASET))
print("Number of validation examples:", len(VAL_DATASET))
#print("Number of test examples:", len(TEST_DATASET))

def collate_fn(batch):
    return tuple(zip(*batch))

TRAIN_DATALOADER = DataLoader(dataset=TRAIN_DATASET,collate_fn = collate_fn, batch_size=2, shuffle=True)
VAL_DATALOADER = DataLoader(dataset=VAL_DATASET,collate_fn = collate_fn, batch_size=4, shuffle=True)

import numpy as np

class CocoDNN(L.LightningModule):
    def __init__(self):
        super().__init__()
        self.model = models.detection.fasterrcnn_mobilenet_v3_large_fpn(weights="DEFAULT")

    def forward(self, images, targets=None):
        return self.model(images, targets)

    def training_step(self, batch, batch_idx):
        imgs, annot = batch

        batch_losses = []
        for img_b, annot_b in zip(imgs, annot):
            #print(len(img_b), len(annot_b))
            loss_dict = self.model(img_b, annot_b)
            losses = sum(loss for loss in loss_dict.values())
            #print(losses)
            batch_losses.append(losses)

        batch_mean  = torch.mean(torch.stack(batch_losses))
        #print(batch_mean) --- **TRIED THIS AND IT PRINTS**
        self.log('train_loss', batch_mean)

        #print(imgs[0])
        #print(' ----',annot)
        #loss_dict = self.model(img_b, annot_b)
        #losses = sum(loss for loss in loss_dict.values())
        #self.log('train_loss', losses)
        return batch_mean

    def configure_optimizers(self):
        return optim.SGD(self.parameters(), lr=0.001, momentum=0.9, weight_decay=0.0005)

dnn = CocoDNN()
trainer = L.Trainer(limit_train_batches=100, max_epochs=1)
trainer.fit(model=dnn, train_dataloaders=TRAIN_DATALOADER)

Stack Trace

{
	"name": "RuntimeError",
	"message": "view size is not compatible with input tensor's size and stride (at least one dimension spans across two contiguous subspaces). Use .reshape(...) instead.",
	"stack": "---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[192], line 3
      1 dnn = CocoDNN()
      2 trainer = L.Trainer(limit_train_batches=100, max_epochs=1)
----> 3 trainer.fit(model=dnn, train_dataloaders=TRAIN_DATALOADER)

File site-packages/lightning/pytorch/trainer/trainer.py:538, in Trainer.fit(self, model, train_dataloaders, val_dataloaders, datamodule, ckpt_path)
    536 self.state.status = TrainerStatus.RUNNING
    537 self.training = True
--> 538 call._call_and_handle_interrupt(
    539     self, self._fit_impl, model, train_dataloaders, val_dataloaders, datamodule, ckpt_path
    540 )

File site-packages/lightning/pytorch/trainer/call.py:47, in _call_and_handle_interrupt(trainer, trainer_fn, *args, **kwargs)
     45     if trainer.strategy.launcher is not None:
     46         return trainer.strategy.launcher.launch(trainer_fn, *args, trainer=trainer, **kwargs)
---> 47     return trainer_fn(*args, **kwargs)
     49 except _TunerExitException:
     50     _call_teardown_hook(trainer)

File site-packages/lightning/pytorch/trainer/trainer.py:574, in Trainer._fit_impl(self, model, train_dataloaders, val_dataloaders, datamodule, ckpt_path)
    567 assert self.state.fn is not None
    568 ckpt_path = self._checkpoint_connector._select_ckpt_path(
    569     self.state.fn,
    570     ckpt_path,
    571     model_provided=True,
    572     model_connected=self.lightning_module is not None,
    573 )
--> 574 self._run(model, ckpt_path=ckpt_path)
    576 assert self.state.stopped
    577 self.training = False

File site-packages/lightning/pytorch/trainer/trainer.py:981, in Trainer._run(self, model, ckpt_path)
    976 self._signal_connector.register_signal_handlers()
    978 # ----------------------------
    979 # RUN THE TRAINER
    980 # ----------------------------
--> 981 results = self._run_stage()
    983 # ----------------------------
    984 # POST-Training CLEAN UP
    985 # ----------------------------
    986 log.debug(f\"{self.__class__.__name__}: trainer tearing down\")

File site-packages/lightning/pytorch/trainer/trainer.py:1025, in Trainer._run_stage(self)
   1023         self._run_sanity_check()
   1024     with torch.autograd.set_detect_anomaly(self._detect_anomaly):
-> 1025         self.fit_loop.run()
   1026     return None
   1027 raise RuntimeError(f\"Unexpected state {self.state}\")

File site-packages/lightning/pytorch/loops/fit_loop.py:205, in _FitLoop.run(self)
    203 try:
    204     self.on_advance_start()
--> 205     self.advance()
    206     self.on_advance_end()
    207     self._restarting = False

File site-packages/lightning/pytorch/loops/fit_loop.py:363, in _FitLoop.advance(self)
    361 with self.trainer.profiler.profile(\"run_training_epoch\"):
    362     assert self._data_fetcher is not None
--> 363     self.epoch_loop.run(self._data_fetcher)

File site-packages/lightning/pytorch/loops/training_epoch_loop.py:140, in _TrainingEpochLoop.run(self, data_fetcher)
    138 while not self.done:
    139     try:
--> 140         self.advance(data_fetcher)
    141         self.on_advance_end(data_fetcher)
    142         self._restarting = False

File site-packages/lightning/pytorch/loops/training_epoch_loop.py:250, in _TrainingEpochLoop.advance(self, data_fetcher)
    247 with trainer.profiler.profile(\"run_training_batch\"):
    248     if trainer.lightning_module.automatic_optimization:
    249         # in automatic optimization, there can only be one optimizer
--> 250         batch_output = self.automatic_optimization.run(trainer.optimizers[0], batch_idx, kwargs)
    251     else:
    252         batch_output = self.manual_optimization.run(kwargs)

File site-packages/lightning/pytorch/loops/optimization/automatic.py:190, in _AutomaticOptimization.run(self, optimizer, batch_idx, kwargs)
    183         closure()
    185 # ------------------------------
    186 # BACKWARD PASS
    187 # ------------------------------
    188 # gradient update with accumulated gradients
    189 else:
--> 190     self._optimizer_step(batch_idx, closure)
    192 result = closure.consume_result()
    193 if result.loss is None:

File site-packages/lightning/pytorch/loops/optimization/automatic.py:268, in _AutomaticOptimization._optimizer_step(self, batch_idx, train_step_and_backward_closure)
    265     self.optim_progress.optimizer.step.increment_ready()
    267 # model hook
--> 268 call._call_lightning_module_hook(
    269     trainer,
    270     \"optimizer_step\",
    271     trainer.current_epoch,
    272     batch_idx,
    273     optimizer,
    274     train_step_and_backward_closure,
    275 )
    277 if not should_accumulate:
    278     self.optim_progress.optimizer.step.increment_completed()

File site-packages/lightning/pytorch/trainer/call.py:167, in _call_lightning_module_hook(trainer, hook_name, pl_module, *args, **kwargs)
    164 pl_module._current_fx_name = hook_name
    166 with trainer.profiler.profile(f\"[LightningModule]{pl_module.__class__.__name__}.{hook_name}\"):
--> 167     output = fn(*args, **kwargs)
    169 # restore current_fx when nested context
    170 pl_module._current_fx_name = prev_fx_name

File site-packages/lightning/pytorch/core/module.py:1306, in LightningModule.optimizer_step(self, epoch, batch_idx, optimizer, optimizer_closure)
   1275 def optimizer_step(
   1276     self,
   1277     epoch: int,
   (...)
   1280     optimizer_closure: Optional[Callable[[], Any]] = None,
   1281 ) -> None:
   1282     r\"\"\"Override this method to adjust the default way the :class:`~lightning.pytorch.trainer.trainer.Trainer` calls
   1283     the optimizer.
   1284
   (...)
   1304
   1305     \"\"\"
-> 1306     optimizer.step(closure=optimizer_closure)

File site-packages/lightning/pytorch/core/optimizer.py:153, in LightningOptimizer.step(self, closure, **kwargs)
    150     raise MisconfigurationException(\"When `optimizer.step(closure)` is called, the closure should be callable\")
    152 assert self._strategy is not None
--> 153 step_output = self._strategy.optimizer_step(self._optimizer, closure, **kwargs)
    155 self._on_after_step()
    157 return step_output

File site-packages/lightning/pytorch/strategies/strategy.py:238, in Strategy.optimizer_step(self, optimizer, closure, model, **kwargs)
    236 # TODO(fabric): remove assertion once strategy's optimizer_step typing is fixed
    237 assert isinstance(model, pl.LightningModule)
--> 238 return self.precision_plugin.optimizer_step(optimizer, model=model, closure=closure, **kwargs)

File site-packages/lightning/pytorch/plugins/precision/precision.py:122, in Precision.optimizer_step(self, optimizer, model, closure, **kwargs)
    120 \"\"\"Hook to run the optimizer step.\"\"\"
    121 closure = partial(self._wrap_closure, model, optimizer, closure)
--> 122 return optimizer.step(closure=closure, **kwargs)

File site-packages/torch/optim/optimizer.py:487, in Optimizer.profile_hook_step.<locals>.wrapper(*args, **kwargs)
    482         else:
    483             raise RuntimeError(
    484                 f\"{func} must return None or a tuple of (new_args, new_kwargs), but got {result}.\"
    485             )
--> 487 out = func(*args, **kwargs)
    488 self._optimizer_step_code()
    490 # call optimizer step post hooks

File site-packages/torch/optim/optimizer.py:91, in _use_grad_for_differentiable.<locals>._use_grad(self, *args, **kwargs)
     89     torch.set_grad_enabled(self.defaults[\"differentiable\"])
     90     torch._dynamo.graph_break()
---> 91     ret = func(self, *args, **kwargs)
     92 finally:
     93     torch._dynamo.graph_break()

File site-packages/torch/optim/sgd.py:112, in SGD.step(self, closure)
    110 if closure is not None:
    111     with torch.enable_grad():
--> 112         loss = closure()
    114 for group in self.param_groups:
    115     params: List[Tensor] = []

File site-packages/lightning/pytorch/plugins/precision/precision.py:108, in Precision._wrap_closure(self, model, optimizer, closure)
     95 def _wrap_closure(
     96     self,
     97     model: \"pl.LightningModule\",
     98     optimizer: Steppable,
     99     closure: Callable[[], Any],
    100 ) -> Any:
    101     \"\"\"This double-closure allows makes sure the ``closure`` is executed before the ``on_before_optimizer_step``
    102     hook is called.
    103
   (...)
    106
    107     \"\"\"
--> 108     closure_result = closure()
    109     self._after_closure(model, optimizer)
    110     return closure_result

File site-packages/lightning/pytorch/loops/optimization/automatic.py:144, in Closure.__call__(self, *args, **kwargs)
    142 @override
    143 def __call__(self, *args: Any, **kwargs: Any) -> Optional[Tensor]:
--> 144     self._result = self.closure(*args, **kwargs)
    145     return self._result.loss

File site-packages/torch/utils/_contextlib.py:116, in context_decorator.<locals>.decorate_context(*args, **kwargs)
    113 @functools.wraps(func)
    114 def decorate_context(*args, **kwargs):
    115     with ctx_factory():
--> 116         return func(*args, **kwargs)

File site-packages/lightning/pytorch/loops/optimization/automatic.py:138, in Closure.closure(self, *args, **kwargs)
    135     self._zero_grad_fn()
    137 if self._backward_fn is not None and step_output.closure_loss is not None:
--> 138     self._backward_fn(step_output.closure_loss)
    140 return step_output

File site-packages/lightning/pytorch/loops/optimization/automatic.py:239, in _AutomaticOptimization._make_backward_fn.<locals>.backward_fn(loss)
    238 def backward_fn(loss: Tensor) -> None:
--> 239     call._call_strategy_hook(self.trainer, \"backward\", loss, optimizer)

File site-packages/lightning/pytorch/trainer/call.py:319, in _call_strategy_hook(trainer, hook_name, *args, **kwargs)
    316     return None
    318 with trainer.profiler.profile(f\"[Strategy]{trainer.strategy.__class__.__name__}.{hook_name}\"):
--> 319     output = fn(*args, **kwargs)
    321 # restore current_fx when nested context
    322 pl_module._current_fx_name = prev_fx_name

File site-packages/lightning/pytorch/strategies/strategy.py:212, in Strategy.backward(self, closure_loss, optimizer, *args, **kwargs)
    209 assert self.lightning_module is not None
    210 closure_loss = self.precision_plugin.pre_backward(closure_loss, self.lightning_module)
--> 212 self.precision_plugin.backward(closure_loss, self.lightning_module, optimizer, *args, **kwargs)
    214 closure_loss = self.precision_plugin.post_backward(closure_loss, self.lightning_module)
    215 self.post_backward(closure_loss)

File site-packages/lightning/pytorch/plugins/precision/precision.py:72, in Precision.backward(self, tensor, model, optimizer, *args, **kwargs)
     52 @override
     53 def backward(  # type: ignore[override]
     54     self,
   (...)
     59     **kwargs: Any,
     60 ) -> None:
     61     r\"\"\"Performs the actual backpropagation.
     62
     63     Args:
   (...)
     70
     71     \"\"\"
---> 72     model.backward(tensor, *args, **kwargs)

File site-packages/lightning/pytorch/core/module.py:1101, in LightningModule.backward(self, loss, *args, **kwargs)
   1099     self._fabric.backward(loss, *args, **kwargs)
   1100 else:
-> 1101     loss.backward(*args, **kwargs)

File site-packages/torch/_tensor.py:581, in Tensor.backward(self, gradient, retain_graph, create_graph, inputs)
    571 if has_torch_function_unary(self):
    572     return handle_torch_function(
    573         Tensor.backward,
    574         (self,),
   (...)
    579         inputs=inputs,
    580     )
--> 581 torch.autograd.backward(
    582     self, gradient, retain_graph, create_graph, inputs=inputs
    583 )

File site-packages/torch/autograd/__init__.py:347, in backward(tensors, grad_tensors, retain_graph, create_graph, grad_variables, inputs)
    342     retain_graph = create_graph
    344 # The reason we repeat the same comment below is that
    345 # some Python versions print out the first line of a multi-line function
    346 # calls in the traceback and some print out the last line
--> 347 _engine_run_backward(
    348     tensors,
    349     grad_tensors_,
    350     retain_graph,
    351     create_graph,
    352     inputs,
    353     allow_unreachable=True,
    354     accumulate_grad=True,
    355 )

File site-packages/torch/autograd/graph.py:825, in _engine_run_backward(t_outputs, *args, **kwargs)
    823     unregister_hooks = _register_logging_hooks_on_whole_graph(t_outputs)
    824 try:
--> 825     return Variable._execution_engine.run_backward(  # Calls into the C++ engine to run the backward pass
    826         t_outputs, *args, **kwargs
    827     )  # Calls into the C++ engine to run the backward pass
    828 finally:
    829     if attach_logging_hooks:

RuntimeError: view size is not compatible with input tensor's size and stride (at least one dimension spans across two contiguous subspaces). Use .reshape(...) instead."
}

```

### Versions

Latest version of vision and torch

Hi @shanalikhan ,  It's quite difficult for now to figure out whether the issue you're observing truely is related to torchvision. Are you able to share a much more minimal reproducing example?

@NicolasHug
Yes, i've shared the completed data loader and model as well in the above model since it fails on training therefore I had to share the complete code instead.

@shanalikhan if you could write a minimal example without using the lightning code base, it would help. As you can see the error log is too much convoluted.

Umm, converting it without lightening code base will take some time, For now I've tried to switch from MPS to cpu and it worked fine. Give me time, I'll try with Google Colab to conclude its problem with MPS or not.

So guys, I've tried with google colab and its working fine with GPU and CPU and issue persist on MPS - Using M3 at the moment.
https://github.com/Lightning-AI/pytorch-lightning/issues/20386

I am on M4 and using MPS. For me the problem was partial support for reshaping operations in mps. Once I got rid of them (including transpose), it worked fine. Of course, without mps it always work but that is not the point here. Kind of non-trivial MWE that works (note I normally would have used transpose at the output end of PatchEmbedding
import os
import torch
import torch.nn as nn
import torch.optim as optim
from torchvision import datasets, transforms
from torch.utils.data import DataLoader

# Enable MPS fallback
os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1"

# Define Patch Embedding
class PatchEmbedding(nn.Module):
    def __init__(self, in_channels=1, patch_size=7, embed_dim=64):
        super(PatchEmbedding, self).__init__()
        self.patch_size = patch_size
        self.embed_dim = embed_dim
        self.proj = nn.Conv2d(
            in_channels,
            embed_dim,
            kernel_size=patch_size,
            stride=patch_size
        )

    def forward(self, x):
        # Project input into patches
        x = self.proj(x)  # Shape: (batch_size, embed_dim, H/patch_size, W/patch_size)
        # Flatten spatial dimensions without transposing or reordering
        batch_size, embed_dim, h, w = x.shape
        x = x.view(batch_size, embed_dim, h * w)  # Shape: (batch_size, embed_dim, num_patches)
        return x

# Define Transformer Block
class TransformerBlock(nn.Module):
    def __init__(self, embed_dim=64, num_heads=4):
        super(TransformerBlock, self).__init__()
        self.attention = nn.MultiheadAttention(embed_dim, num_heads, batch_first=True)
        self.norm1 = nn.LayerNorm(embed_dim)
        self.norm2 = nn.LayerNorm(embed_dim)
        self.feed_forward = nn.Sequential(
            nn.Linear(embed_dim, embed_dim * 4),
            nn.ReLU(),
            nn.Linear(embed_dim * 4, embed_dim)
        )

    def forward(self, x):
        attn_output, _ = self.attention(x, x, x)  # Attention output
        x = self.norm1(attn_output + x)  # Residual + normalization
        ff_output = self.feed_forward(x)
        x = self.norm2(ff_output + x)  # Residual + normalization
        return x

# Define Vision Transformer
class VisionTransformer(nn.Module):
    def __init__(self, num_classes=10, patch_size=7, embed_dim=64, num_transformer_blocks=3):
        super(VisionTransformer, self).__init__()
        self.patch_embedding = PatchEmbedding(in_channels=1, patch_size=patch_size, embed_dim=embed_dim)
        self.transformer_blocks = nn.Sequential(
            *[TransformerBlock(embed_dim, num_heads=4) for _ in range(num_transformer_blocks)]
        )
        self.classifier = nn.Linear(embed_dim, num_classes)  # Classifier assumes pooled output

    def forward(self, x):
        x = self.patch_embedding(x)  # Shape: (batch_size, embed_dim, num_patches)
        x = x.mean(dim=2)  # Global average pooling across patches
        return self.classifier(x)

if __name__ == "__main__":
    # Set device
    device = torch.device("mps" if torch.backends.mps.is_available() else "cpu")

    # Initialize model, loss, and optimizer
    model = VisionTransformer(num_classes=10).to(device)
    criterion = nn.CrossEntropyLoss()
    optimizer = optim.Adam(model.parameters(), lr=0.001)

    # Debugging input tensors
    images = torch.rand(64, 1, 28, 28, device=device)  # Batch of 64 images
    labels = torch.randint(0, 10, (64,), device=device)

    # Forward pass
    outputs = model(images)
    print(f"Output shape: {outputs.shape}")  # Ensure shape is (64, 10)

    # Compute loss
    loss = criterion(outputs, labels)
    loss.backward()

Thank you for your reproducing example @inic8 . From what I can tell, this example doesn't rely on any functionality from torchvision (the from torchvision... import is un-used).
That seems to suggest that this is an MPS-related problem that does not originates from within torchvision but rather from pytorch itself. As a result, I think it's safe to close this issue as it doesn't seem relevant for torchvision. I encourage you to open a similar one in pytorch.
I'll CC @qqaatw here though, in case this is some known issue already.


Move padding out of column as default

Hey,
Maybe just me. But I believe column padding should be optional on columns. Just so you can have bumper to bumper grids and nesting becomes easer too.
Happy to do a PR. Thoughts?

Glad to help, but I know would not be the grid structure without the padding. I await your "PR" for analysis. Anyway, thanks alot.


Pickset is slow for large arrays

Calling the method pickset on a large array (tried it with an array of 20000 items) runs very slow. To fix this I am using the following function (which runs much faster) to pick a random set of items from an array:
function pickset (arr, n) {
    return chance.n(chance.ingeter, n, { min: 0, max: arr.length - 1 }).map(i => arr[i])
}

I get the following when measuring the execution time for both functions:

chance.pickset: 51.348977ms
custom pickset: 0.094814ms

Would it be desirable to change the current implementation for pickset?

Oh nice, that's a much better solution @vshulev ! pickset() is mostly slow due to its use of shuffle() under the hood which is a very inefficient operation.
I'd gladly accept a PR with this implementation 😀

@victorquinn PR #336 done. Let me know if it needs any improvements :)


Add info about Grafana

We need to be able to track changes to the Grafana dashboard, and need to add something about them to the docs.

[ ] Add a page about Grafana (under Prometheus or integrations), along the lines of a README

References

https://github.com/minio/minio/tree/master/docs/metrics/prometheus/grafana
https://grafana.com/grafana/dashboards/13502-minio-dashboard/?tab=revisions

Check with @vadmeste if there's a way to see what changes when easily.


Container Station not available on older QNAP NAS

I was unable to complete the installation because my QNAP does not support container station. This is my error after an attempted install:
Type	Date	Time	Users	Source IP	Computer name	Content
Error	2021/05/02	21:20:56	System	<IP_ADDRESS>	localhost	[App Center] Failed to install Storj Storage Node 1.1.0. You must first install and enable container-station >= 1.7.2041.

On the website:

*Container Station is available from the QTS App Center (QTS 4.2 or above) for x86-based TS-x51, TS-x51+, TS-x51A, TS-x53, TS-x53A, TS/TVS-x63, TVS-x70, TVS-x71, TS/SS-x79, TS/TVS-x80 and TVS-x82 series, and the ARM-based TS-531P, TS-x31+ series with a minimum of 1GB RAM.

Could the installation be done without container station?

@mikebrownie - Container Station is a requirement for this app.  We have discussed a non-container version of the app but that is not available at the present time.


refactor(various files): replace references to scss variables with custom properties

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


subscribeToTransactionsWithProofs doesn't work with Dash Core v0.14.x

This gRPC endpoint relies on Dash Core's germerkleblocks RPC, which won't be introduced until Dash Core 0.15 is released. That makes this endpoint unusable on Evonet as long as it is continues to run on Dash Core v0.14.x.
The obscure error message returned is lacking sufficient detail to understand what is going on without looking into the DAPI logs:
ERROR:
  Code: Internal
  Message: Internal error

The DAPI logs show the following which led me to the culprit (https://github.com/dashevo/dapi/blob/v0.9-dev/lib/externalApis/dashcore/rpc.js#L189-L204.):
DashCoreRpcError: Method not found
     at /usr/src/app/lib/externalApis/dashcore/rpc.js:199:14
     at newCallback (/node_modules/@dashevo/dashd-rpc/lib/index.js:51:16)
     at IncomingMessage.<anonymous> (/node_modules/@dashevo/dashd-rpc/lib/index.js:125:13)
     at IncomingMessage.emit (events.js:215:7)
     at endReadableNT (_stream_readable.js:1184:12)
     at processTicksAndRejections (internal/process/task_queues.js:80:21)

Documenting this in case anyone else encounters the issue and ends up here.

The Dash Core v0.15.0 dashpay/dashd image is now available.

Thank you!


Init flake

Adds a flake, so we can add this to the hack club nix overlay :)

Does this work on windows too?

How would updating the flake work?

Nix doesn't work on windows, also the flake doesn't need to be updated, as it will build from the current source repository.

Alright, thanks a lot


LaunchScreen and App icons

As far as I can tell, icons are in no way set programmatically, right? I've successfully altered the icon for the Main storyboard but LaunchScreen is still stuck (provided LaunchScreen is the first screen)...

App icon masking issue as per #15
LaunchScreen icon incorrect

LaunchScreen storyboard
Main Storyboard

Assets

LaunchIcon is a single asset with a universal size.

Same issue #15.
Currently yes icons generating a bit not right, I'm sure in the next versions this will be fixed.
For now, please try this tool, it helps you generate icons manually and you can replace broken ones in Assets.

Same issue #15.
Currently yes icons generating a bit not right, I'm sure in the next versions this will be fixed.
For now, please try this tool, it helps you generate icons manually and you can replace broken ones in Assets.

I mentioned #15 myself but as I also said, after checking the assets and comparing to other projects, I can't find any issue


Add link to stowsh

This PR adds a link to stowsh, a pure-bash, nearly-POSIX-compliant clone of GNU stow.

Ooh, I need to try this. I'm a user of stow currently, but if I could stick stowsh in my dotfiles repo... This could be awesome.

Thanks! Here's how I bootstrap it during my dotfiles setup.

Nice, I'm going to have to give that a try.

Thanks for the contribution!


Refactoring builds pt1.

Gen docker container.

Codecov Report

Merging #56 (15aa676) into master (bfbbd25) will increase coverage by 41.69%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master      #56       +/-   ##
===========================================
+ Coverage   45.52%   87.21%   +41.69%
===========================================
  Files          18        7       -11
  Lines        1753     1870      +117
  Branches      267        0      -267
===========================================
+ Hits          798     1631      +833
+ Misses        837      239      -598
+ Partials      118        0      -118

Impacted Files
Coverage Δ

btknmle/src/hogp/hids.rs

btknmle/src/hogp/bas.rs

btknmle/src/input/mousestat.rs

btknmle/src/hogp/mod.rs

btknmle/src/hogp/gap.rs

btknmle/src/hogp/dis.rs

btknmle/src/hid.rs

btknmle/src/input/kbstat.rs

btknmle/src/hogp/gatt.rs

btknmle/src/input/source.rs

... and 8 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 bfbbd25...15aa676. Read the comment docs.


FEAT: Configure Default dotfiles for all WSL distributions

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
I find myself recreating some of the same files (or at least certain values/variables/aliases that are common to those files) across distributions.  It would be great if we could maybe point to a folder on Windows where we have a set of default files stored, and from the command line, tell wsl to place these files in each new distribution as a way to automate the setup.
Describe alternatives you've considered
The standard - backing up dotfiles and manually placing them in each new distro - it's workable but not ideal
Additional context
Add any other context or screenshots about the feature request here.

/feature


feat: Support Ventura

Update UI automation scripts to cater for MacOS 13 Ventura.

Potentially blocked on: https://github.com/actions/runner-images/issues/7531


Column doesn't show last entry

I want to use a column to split my window in 3 parts:

toolbar
main
status bar

https://github.com/Orchaldir/texture_generator/commit/aafdaf6890376446a773f7cdfbb9e488cd949dbc
But the status bar isn't shown. If I move the status bar before main, I can see it.

Why are you pushing the status_bar text inside of a row? Just push the text itself. If that doesn't work then try putting the text into a Container

My plan was to have a row of things in the status bar, but I had problems with the 1.test. The other 2 options don't work too.
let status_bar = Container::new(Text::new(format!(
            "{} x {} tiles",
            size.width(),
            size.height()
        )));

let status_bar = Text::new(format!(
            "{} x {} tiles",
            size.width(),
            size.height()
        ));

Can you add some screenshots please?

I just had an idea and tested something. It works correctly with image::Viewer instead of my custom widget.

So I found that problem, but I am not sure if it is a bug in Iced or if I missundertand something.
No status bar:
fn layout(&self, _renderer: &Renderer, limits: &Limits) -> Node {
     let mut size = limits.max();
     Node::new(size)
}

Working status bar:
fn layout(&self, _renderer: &Renderer, limits: &Limits) -> Node {
     let mut size = limits.max();
     size.height -= 20.0;
     Node::new(size)
}

Does my widget need to know how much space the other elements below it in the column need? That does sound strange.

I believe so yes, I do know that Iced native widgets have a step that calculates sizes of widgets, so I assume custom widgets need to do the same.

If the layout strategy of your custom widget is to fill all the available space in the Y axis, make sure that Widget::height returns Length::Fill.
That way, the layout engine will defer layout computation for your widget until the other non-fill elements have been placed.


Add storybook background addon

Added

An addon to change the background of the preview area of the storybook

Conflicts, yo!


fix: collect_scores.py incorporate all_correct drop

#446
#444

Summary by Sourcery
Fix the incorporation of 'all_correct' in score calculations and enhance logging, error handling, and memory efficiency in data processing functions.
Bug Fixes:

Fix issue where 'all_correct' was not properly incorporated in the score calculation in 'collect_scores.py'.

Enhancements:

Add logging to provide more information during the data loading and processing steps in 'collect_scores.py'.
Improve error handling in 'combine_scores_for_model' function to return a structured error message in case of exceptions.
Optimize 'load_all_reports' function to process reports in batches, improving memory efficiency.

@MrtinoRG can you do one more round. looks like it is fixed now.


[WFLY-4538] Remote tests fail with ClassNotFoundException: org.w3c.dom.E...

...lementTraversal

Is this waiting on something? I'd like to see this in 9.0.0.CR1

Per @ctomc, this should no longer be needed as #18 eliminates the problem.

In that case I'm closing this.


Error: Could not get devices in getAllRingsDevices()

First Time Using Ring Device / iobroker Adapter. Installation of Ring device via ring App was fine.
After adapter start, permanently getting message:
Error: Could not get devices in getAllRingsDevices(). Error: Could not get all doorbell devices in getAllRingsDeviceObjects(). Error: Could not get device instance in method getDevices(). Error
no objects were created.

Hardware: Doorbell v2
Adapter: same issue for 1.1.3 abd 1.1.5-beta
Environment: iobroker on synology ds218+ in docker (shouldnt matter)
Token creation via node ring-auth-cli successfull with using 2fa

observations:

Error is the same, if i use wrong credentials on purpose

See Debug Info here:

when leaving mouse on error message, you will see message that access token is invalid.
Removing Adapter, Installing it again, only putting in refresh-Token and NOT email/password fixed it for me
if entry in mail/password, this issue seems to occur