Window "freezes" having a purple border when resizing

Bug description:
When I resize the window, not always but very often, the visual window freezes and the extra space is occupied by a purple color. If the resized window is smaller than the original, then the visuals are just cropped.
Sometimes when starting the application, I still have this purple screen of death, but usually after bringing the menu and reload ferdi, it goes away usually even with the first try (but not always).
Steps to reproduce:

Resize the window (sometimes soon, sometimes it takes more time, it looks random).
The visuals freeze as the screenshot
Click on "Alt" to bring up the Menu bar
View -> Reload Ferdi  (just reloading the service doesn't work)

Expected behavior
To continue resizing the window
Screenshots

Environment:

Operating System: Arch Linux, KDE environment

Ferdi Version: 5.6.3-nightly.10  (it's happening since 5.6)

Server: Using without account

Debug information:

{"host":{"platform":"linux","release":"5.14.6-arch1-1","screens":[{"id":8564274688388421,"bounds":{"x":0,"y":0,"width":2560,"height":1440},"workArea":{"x":0,"y":0,"width":2560,"height":1440},"accelerometerSupport":"unknown","monochrome":false,"colorDepth":24,"colorSpace":"{primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL}","depthPerComponent":8,"size":{"width":2560,"height":1440},"displayFrequency":59,"workAreaSize":{"width":2560,"height":1440},"scaleFactor":1.5,"rotation":0,"internal":false,"touchSupport":"unknown"},{"id":8564274688388422,"bounds":{"x":2560,"y":0,"width":2560,"height":1440},"workArea":{"x":2560,"y":0,"width":2560,"height":1440},"accelerometerSupport":"unknown","monochrome":false,"colorDepth":24,"colorSpace":"{primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL}","depthPerComponent":8,"size":{"width":2560,"height":1440},"displayFrequency":59,"workAreaSize":{"width":2560,"height":1440},"scaleFactor":1.5,"rotation":0,"internal":false,"touchSupport":"unknown"}]},"ferdi":{"version":"5.6.3-nightly.10","electron":"13.4.0","installedRecipes":[{"id":"android-messages","version":"2.2.3"},{"id":"discord","version":"1.4.3"},{"id":"gmail","version":"1.4.2"},{"id":"googlecalendar","version":"2.2.0"},{"id":"hangouts","version":"1.2.1"},{"id":"linkedin","version":"1.2.2"},{"id":"messenger","version":"1.3.3"},{"id":"msteams","version":"3.1.6"},{"id":"office365-owa","version":"1.4.6"},{"id":"outlook","version":"1.1.1"},{"id":"rocketchat","version":"1.2.2"},{"id":"skype","version":"3.2.1"},{"id":"telegram","version":"3.2.2"},{"id":"trello","version":"1.1.1"},{"id":"whatsapp","version":"3.3.4"},{}],"devRecipes":[],"services":[{"id":"d44e957c-a22f-40ec-b6d8-eea0913963d6","recipe":"gmail","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":true},{"id":"56869dc5-b2dd-454e-9d6b-d734aa3ad21a","recipe":"outlook","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"5a645bb5-71e5-4c53-ad10-054af2a91cdd","recipe":"googlecalendar","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"34572352-442f-49d1-b9bb-56f7706f3d76","recipe":"telegram","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"849842a9-d33b-4965-8485-d501a58b481f","recipe":"discord","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"eaa4f329-79f1-44f6-a31f-439407903c76","recipe":"rocketchat","isAttached":true,"isActive":true,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"1c1ca05d-fa75-4dba-bd3a-8a0f561e71bf","recipe":"skype","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"75c51f0b-c9d6-40db-8d00-316b7dd4736b","recipe":"msteams","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"2eea19c4-7ad6-44de-bc13-e170bb724040","recipe":"office365-owa","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"1cb0bf4c-a06e-40ea-b6b3-38ed06b7f9dc","recipe":"whatsapp","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"fc607903-ce69-46ea-a6a3-36bd756a684e","recipe":"messenger","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"bb56f2b7-4607-421e-a847-83f4ca7996dc","recipe":"hangouts","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"74e9da61-b8bf-46b2-8310-a77e6326ae16","recipe":"linkedin","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"a34d23e1-59ce-4a01-9d24-dbf1998ca74e","recipe":"android-messages","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"cbba8e98-20d6-43b3-a3f3-6dcb8f26171f","recipe":"trello","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false}],"messages":[{"type":"error","info":["error","Warning: Failed prop type: Invalid prop actions.service of type Object supplied to _class2, expected instance of _class.\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]},{"type":"error","info":["error","Warning: Failed prop type: Invalid prop actions.settings of type Object supplied to _class2, expected instance of _class.\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by Context.Consumer)\n    in injectIntl(inject-_class2-with-stores-actions) (created by _class2)\n    in div (created by _class2)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by Context.Consumer)\n    in injectIntl(Jss(_class2)) (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by Context.Consumer)\n    in injectIntl(Jss(_class2)) (created by _class2)\n    in ThemeProvider (created by _class2)\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]},{"type":"error","info":["error","Warning: Failed prop type: Invalid prop actions.settings of type Object supplied to _class, expected instance of _class.\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions (created by Jss(inject-_class-with-stores-actions))\n    in Jss(inject-_class-with-stores-actions) (created by Context.Consumer)\n    in injectIntl(Jss(inject-_class-with-stores-actions)) (created by _class2)\n    in div (created by _class2)\n    in div (created by _class2)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by Context.Consumer)\n    in injectIntl(Jss(_class2)) (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by Context.Consumer)\n    in injectIntl(Jss(_class2)) (created by _class2)\n    in ThemeProvider (created by _class2)\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]},{"type":"error","request":{"result":null,"wasExecuted":true,"method":"getInfo"},"error":{},"response":{},"server":"You are using Ferdi without a server"},{"type":"error","request":{"result":null,"wasExecuted":true,"method":"features"},"error":{},"response":{},"server":"You are using Ferdi without a server"},{"type":"error","request":{"result":null,"wasExecuted":true,"method":"all"},"error":{},"response":{},"server":"You are using Ferdi without a server"},{"type":"error","info":["error","Warning: You cannot PUSH the same path using hash history"]}],"workspaces":[],"windowSettings":{"width":1681,"height":916,"x":195,"y":412,"displayBounds":{"x":0,"y":0,"width":2560,"height":1440},"isMaximized":false,"isFullScreen":true},"settings":{"autoLaunchInBackground":false,"runInBackground":true,"reloadAfterResume":true,"enableSystemTray":true,"startMinimized":true,"confirmOnQuit":false,"minimizeToSystemTray":false,"closeToSystemTray":false,"privateNotifications":false,"clipboardNotifications":true,"notifyTaskBarOnMessage":false,"showDisabledServices":true,"showMessageBadgeWhenMuted":true,"showDragArea":false,"enableSpellchecking":true,"spellcheckerLanguage":"en-us","darkMode":false,"splitMode":false,"locale":"en-US","fallbackLocale":"en-US","beta":false,"isAppMuted":false,"enableGPUAcceleration":true,"server":"You are using Ferdi without a server","predefinedTodoServer":"https://todo.microsoft.com/?app#","autohideMenuBar":true,"lockingFeatureEnabled":false,"locked":false,"lockedPassword":"******","useTouchIdToUnlock":true,"scheduledDNDEnabled":false,"scheduledDNDStart":"17:00","scheduledDNDEnd":"09:00","hibernateOnStartup":true,"hibernationStrategy":"3600","wakeUpStrategy":"300","inactivityLock":0,"automaticUpdates":true,"showServiceNavigationBar":false,"universalDarkMode":false,"userAgentPref":"","adaptableDarkMode":false,"accentColor":"#7367f0","serviceRibbonWidth":"55","iconSize":"30","sentry":false,"nightly":false,"navigationBarBehaviour":"never","searchEngine":"duckDuckGo","useVerticalStyle":false,"alwaysShowWorkspaces":false,"liftSingleInstanceLock":false,"serviceLimit":5,"hibernate":false,"todoServer":"isUsingCustomTodoService","customTodoServer":""},"features":{"isServiceProxyEnabled":true,"isWorkspaceEnabled":true,"isTodosEnabled":true,"isSettingsWSEnabled":false},"user":"82c1cf9d-ab58-4da2-b55e-aaa41d2142d8"}}

Maybe it's related to https://github.com/getferdi/ferdi/issues/1791 but it happens even if the window isn't maximised


setting proxy for selenium

Hi,
I am trying to use  BrowserMob as proxy for selenium to be able.
I am getting this error :
Caused by: java.lang.SecurityException: class "org.bouncycastle.asn1.ASN1ParsingException"'s signer information does not match signer information of other classes in the same package
What cause this issue and how it can be solved ?

I have had some problems with Selenium, too. See https://github.com/ms777/browsermob-proxy-for-Selenium. Maybe that helps ...


Windows gnumake (a.k.a. make)

Install gnumake.exe as make.exe on Windows. Should make it a bit easier to get started with make on Windows without knowing the details of the package. A little bit of general tidying.

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please re-render.

Hi! This is the friendly automated conda-forge-webservice.
I tried to re-render for you, but it looks like there was nothing to do.

I don't know what the implications are for installing it as make but it seems fine to me.

Thanks @jakirkham!


vitest/no-conditional-tests rule work not correctly

it('some test ', () => {
    const value1 = 1;
    const value2 = 2;
    expect(value1 === 1 && value2 === 2).toBeTruthy();
});

error:
Avoid using conditionals in a test

This behaves correctly for me; there is a better for of writing this, right?
What was your desired behavior in this scenario? I'm closing this but reopen if your feel not satisfied with the rules output


list issued tokens and revoke certain token

how can I list all issued tokens for a certain user ?
how can I revoke certain token (make it invalid) ?

This all depends on your authentication scheme. If you're using a simple, home grown mechanism where you just issue a JWT and then validate it then you can't, at least not without storing all your issued JWT's server side.   You could set them to expire soon after being issued, requiring the client to renew the tokens. Alternatively, you can store every token you issue server side until it expires but this adds a bunch of server-side state you have to keep in your database, which JWT's are supposed to help you avoid.
OAuth 2.0 has the concept of refresh tokens, I suggest you read more on those.  Keep in mind OAuth is a complex framework that you probably shouldn't implement on your own.
Either way, this is beyond the scope of this passport module which just validates JWT's.
See also: https://stackoverflow.com/questions/31919067/how-can-i-revoke-a-jwt-token


Create 09.md

Work in progress for nut-09

I hope this is optional. For a mint to keep track of BlindedMessages it produces is a potential surveillance issue. It would be possible to correlate an isssuance event with a redemption event. I like the idea, but the alarm bells are ringing… I like the fact that a mint has no idea what is circulating, other than what it is liable for issuing.

I hope this is optional.

It is.

For a mint to keep track of BlindedMessages it produces is a potential surveillance issue. It would be possible to correlate an isssuance event with a redemption event.

That's not possible: the point of blind signatures is that the BlindedMessages can not be correlated to the signatures.
We try to operate on the assumption that the mint is fully observable by anyone and privacy shouldn't rely on whether the mint chooses to log something or not.

Continued in #87


CI: remove unnecessary build commands

Summary of the Pull Request
Do not build notifications projects after we do build the .sln

Can we get this in with the CI?


Optional (by flag) System.exit when no error occurs

There are some few cases where call System.exit can have undesirable results. It would be nice if this call was optional, maybe activated by a flag.
When using this library in a container or in a Maven plugin, call System.exit make the entire system to shutdown.
Test Case 1

Create an empty folder and put the pom.xml bellow. Note that Closure is going to run with only --version argument.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.google.javascript</groupId>
	<artifactId>closure-test-no-system-exit</artifactId>
	<version>0.1</version>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	<build>
		<resources>
			<resource>
				<directory>.</directory>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>exec-maven-plugin</artifactId>
				<version>1.6.0</version>
				<executions>
					<execution>
						<id>default-minify</id>
						<phase>process-resources</phase>
						<goals>
							<goal>java</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<mainClass>com.google.javascript.jscomp.CommandLineRunner</mainClass>
					<arguments>
						<argument>--version</argument>
					</arguments>
					<includePluginDependencies>true</includePluginDependencies>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>com.google.javascript</groupId>
						<artifactId>closure-compiler</artifactId>
						<version>v20190121</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>
	</build>
</project>

Type mvn clean package. Everything works fine.

This happens because Closure doesn't call System.exit when we don't call shouldRunCompiler and there is no error in arguments.
Test Case 2

Again, create an empty folder. This time touch an empty file named script.js inside the folder. After that, put the pom.xml below. Note that, the only difference between the two poms is that, this time, we are going to run the compiler on the new empty file script.js.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.google.javascript</groupId>
	<artifactId>closure-test-no-system-exit</artifactId>
	<version>0.1</version>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	<build>
		<resources>
			<resource>
				<directory>.</directory>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>exec-maven-plugin</artifactId>
				<version>1.6.0</version>
				<executions>
					<execution>
						<id>default-minify</id>
						<phase>process-resources</phase>
						<goals>
							<goal>java</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<mainClass>com.google.javascript.jscomp.CommandLineRunner</mainClass>
					<arguments>
						<argument>${project.build.outputDirectory}/script.js</argument>
					</arguments>
					<includePluginDependencies>true</includePluginDependencies>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>com.google.javascript</groupId>
						<artifactId>closure-compiler</artifactId>
						<version>v20190121</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>
	</build>
</project>

Type mvn clean package. Note that, this time, Maven doesn't show any errors, but exits right after process the resources, without finish the lifcecycle (compile and package).

This happens because Closure calls System.exit on every exit code, even when everything ends well with the compiler, finishing with return code 0.
Solution proposal
I think the solution could be just check here if the result code is equal zero and, in this case, avoid calling System.exit. Note that the application still returns code zero when there is no error and the main function ends normally. That's exactly what happens when we don't use the compiler.
Just in case we still need to call System.exit even when the return code is zero, maybe it would be optional by a flag.

Sounds like a reasonable fix to me.
Created internal issue b/123778899


Adding a migration to fix invitation with a sent field set to None

Having invitation with a sent field set to None can have unexpected results, like in django-admin or when listing the invitation, depending on the use.
This PR adds a migration that fix all previously created invitations that doesn't have a sent value.

Merci 😇


Small optimization in _Device.getitem

No need to call inspect.getmembers(importlib.import_module()) every time _Device.__getitem__ is called, cache the runtime object instead.
Also renamed _Device._buffers to _Device._names.

All PRs must either fix bugs, improve speed (>20%), refactor on a conceptual level (big line reduction), or add tested functionality.


Check Boozer routines

[ ] get_boozer_harmonics
[ ] get_boozer_harmonics_divide_f_by_B0: Reduce BOTH function and test to other case

Looks like efit_to_boozer running fine on $DATA/DEMO/EQDSK/Equilibrium_DEMO2019_CHEASE/MOD_Qprof_Test/EQDSK_DEMO2019_q1_COCOS_02.OUT fails on  fails on $DATA/MASTU/EQDSK/MAST_47051_450ms.geqdsk. Could be related to the opposite field line helix pitch. Reproduce by running
python $CODE/tests/libneo/python/test_efit_to_boozer.py


Broken "Events" block layout in handbook/tools/google-calendar/ (large desktop resolution)

Describe the bug
For large screen resolution (1281px & up), Event block layout is broken
To Reproduce
Steps to reproduce the behavior:

Go to https://liferay.design/handbook/tools/google-calendar/
Scroll down to 'Events'
See error

Expected behavior
This block renders same layout than other blocks in the page
Screenshots
Chrome

Firefox

Desktop (please complete the following information):

OS: OSX 11.4
Browser: Chrome. Safari and Firefox break the text block to a new row
Version: last versions on Mac

thanks for opening this @beltranrengifo!


DNS resolver is optional

Because I have IP Address and I don't want to resolve IP.
But, this will mean that the react/dns is optional and we may remove it from composer.json too.

I'd really like to see this PR merged.
Actually I'm still using <IP_ADDRESS> as an hardcoded DNS server in my project (https://github.com/edhelas/movim/blob/master/linker.php#L15) and I see this as a big privacy issue. Is it possible to use the "default" PHP DNS or the one that is set by the OS ? Or maybe I didn't understand something here :) ?

:+1: on the feature, but :-1: on the implementation as it stands
The suggested API means the Connector is now stateful and it introduces additional runtime complexity. Also, the current implementation throws an Exception instead of rejecting (though this could easily be fixed).
See #46 for an alternative implementation as discussed in #12

Is it possible to use the "default" PHP DNS or the one that is set by the OS ? Or maybe I didn't understand something here :) ?

This is unrelated to this changeset in fact :) Quite surprisingly this hasn't been tracked before, so I've just filed https://github.com/reactphp/dns/issues/29.


APIPhase does not report progress (and is not cancellable)

CompileProgress allows clients to report progress and cancel a running compilation. The Scala compiler refreshes progress on every compilation unit/phase transition, and the logic is implemented in GlobalPhase. Unfortunately, APIPhase (which is slow enough, tens of seconds on my project) does not extend GlobalPhase, but directly Phase. The end result is that when users press the cancel button, if the build has reached the API extraction phase, the whole UI blocks until the whole project extraction phase is finished. That can easily take more than 10 seconds.
The fix would be either to extend GlobalPhase, or if that's not possible... simply call advanceUnit and check !cancelled in its implementation. The logic in GlobalPhase is
      try {
        currentRun.currentUnit = unit
        if (!cancelled(unit)) {
          currentRun.informUnitStarting(this, unit)
          apply(unit)
        }
        currentRun.advanceUnit()
      } finally ...

This would greatly improve the experience in IDEs.

This is already fixed, latest Zinc 1.0 is using GlobalPhase.

Can someone close this ticket?


Color Reference Recommendation

Does it contain the "Color Reference Recommendation" part in this work?

@lisa92203 Sorry, we did not involve the "Color Reference Recommendation" in this repository because it relies on the compressed deep features of ImageNet for searching which is too large to upload.

Got it! Thank you for the reply.

@lisa92203 We released the feature database and source code on GitHub (https://github.com/hmmlillian/Gray-Image-Retrieval). Hope it helps.

Thank you very much!


Some minor, redundant ;; in lectures

Search for gr(fmt = :png);; in the code

Apparently this only happened in McCall.
Did a search for ;;.


Helper script to watch monitor output

Moved out from PR 321 per feedback.

I don't have hard pref if to use nc or more native golang approach :man_shrugging:

@mjudeikis the advantage of this over nc:  this will accept multiple connections and log them all, whereas nc accepts one then dies.  This is important given that the monitoring tool makes 2 unix socket connections.  It also simplifies development because you can start this then stop/start the monitoring tool multiple times.


Patching a model instance does not return the instance

Hi,
I have encountered an issue with patching model instances. Documentation indicates that patching a model instance should return the updated model. In my case it returns a number (number of affected rows?). Complete code to reproduce below.
I am using the latest release of Objection.js (0.5.2) and Knex.js (0.11.7) and the issue exists for postgres as well.
Code to reproduce
'use strict';

const Knex = require('knex');
const Model = require('objection').Model;

const knex = Knex({
    client: 'sqlite3',
    useNullAsDefault: true,
    connection: {
        filename: ':memory:'
    }
});
Model.knex(knex);
class Person extends Model {
    static get tableName() { return 'Person'; }
}

knex.schema.createTable('Person', (table) => {
    table.increments('id').primary();
    table.string('firstName').notNullable();
    table.string('lastName').notNullable();
}).then(() => {
    return Person
        .query()
        .insertAndFetch({
            firstName: 'TestFirstName',
            lastName: 'TestLastName'
        });
}).then((person) => {
    console.log(person);
    return person.$query().patch({lastName: 'Cooper'}).then((patchedPerson) => {
        console.log(patchedPerson.lastName, patchedPerson); // Should give --> 'Cooper'.
        console.log(person); // Should be updated?
    });
});

Expected result
Person { firstName: 'TestFirstName', lastName: 'TestLastName', id: 1 }
Cooper Person { firstName: 'TestFirstName', lastName: 'Cooper', id: 1 }
Person { firstName: 'TestFirstName', lastName: 'Cooper', id: 1 }

Actual result
Person { firstName: 'TestFirstName', lastName: 'TestLastName', id: 1 }
undefined 1
Person { firstName: 'TestFirstName', lastName: 'TestLastName', id: 1 }

Workaround
A simple workaround is to re-query the model instance after patching it
Person
    .query()
    .insertAndFetch({
        firstName: 'TestFirstName',
        lastName: 'TestLastName'
    }).then((person) => {
        return person.$query().patch({lastName: 'Cooper'}).then(() => {
            return person.$query().then((patchedPerson) => {
                console.log(patchedPerson);
                return patchedPerson;
            });
        });
    });

Just realized that this is intentional (#139 and #34), and I totally agree with a patchAndFetch method to solve this usecase.
The documentation should probably be changed to not indicate that the patch method returns the updated model.

I'll update the documentation. Also the original person should be updated so we may have a bug there. I'll look into that one.


sched/instrument: rename stack_record.c to stack_monitor.c

Summary
sched/instrument: rename stack_record.c to stack_monitor.c to align with gprof naming convention.
Impact
Testing

[Experimental Bot, please feedback here]
This Pull Request (PR) partially meets the NuttX requirements.
What's Good:

Clear Summary: The summary clearly outlines the change's purpose (renaming for consistency), the affected code area (sched/instrument), and how the change is implemented (renaming a file).

What Needs Improvement:

Impact: The "Impact" section is entirely empty. You must address each impact category (user, build, hardware, documentation, security, compatibility) with a "NO" or a "YES" followed by a description if applicable.  Even if the impact is "NO" for most, you need to explicitly state that.
Testing:

Insufficient Detail:  Specify the build hosts and targets used for testing. Mention the operating systems, architectures, compilers, boards, and configurations.
Missing Logs: Provide actual testing logs from before and after the change. This demonstrates the change's effect and helps reviewers verify its correctness.

Example Impact and Testing Sections
## Impact

* Is new feature added? Is existing feature changed? NO
* Impact on user (will user need to adapt to change)? NO
* Impact on build (will build process change)? NO (The build system will automatically adapt to the file rename)
* Impact on hardware (will arch(s) / board(s) / driver(s) change)? NO
* Impact on documentation (is update required / provided)?  YES (Any documentation referencing stack_record.c will need to be updated to stack_monitor.c)
* Impact on security (any sort of implications)? NO
* Impact on compatibility (backward/forward/interoperability)? NO
* Anything else to consider? NO

## Testing

I confirm that changes are verified on local setup and works as intended:
* Build Host(s): Ubuntu 20.04, x86_64, GCC 9.4.0
* Target(s):
    * Simulator (qemu-arm): sim:nsh
    * STM32F4 Discovery board: stm32f4discovery:nsh

Testing logs before change:

(Logs showing the use of stack_record.c functionality)

Testing logs after change:

(Logs showing the same functionality working with stack_monitor.c)

By providing the missing information in the Impact and Testing sections, you will make your PR much stronger and easier for the NuttX maintainers to review.


Is there a way to make the toast show on top of modals?

Ideally we'd like to be able to display a toast and it appear no matter if there was a modal on the screen or not. Right now if there is a modal the toast appears underneath it. We could add the view modifier onto this modal view, but then the toast would go down once the view was dismissed. Is this something that is possible?

Hey @bratxdy, that's an interesting question. I'm sorry to say right now we are short on time, but we will look into that when we have time. Thank you for reaching out, have a great day!

Hey @bratxdy !
I'm not sure that it is possible in the SwiftUI right now.
There are a few ways to implement this functional

change your hierarchy and add a .popup modifier to the top view.
change a way presentation of modal views.

At the moment, in SwiftUI, such views as e.g. .sheet and some other views will be added to the top of WindowGroup, which causes problems for creating a universal solution.
If you find a solution lets us know !
Have a nice day !

I have the same problem/concern on it

@bratxdy, @skywalkerlw, hey, I added the ability to display popups on top of each other and on top of sheets also. Now you can chain popups - they will use their presenting view's dimensions for their position calculations - not the whole screen like they used to. If anything doesn't work right, please do share your examples with me. Hope that'll help both of you, have a wonderful day!

It's been a while so I'm closing this one for now, please do let me know if you have any further issues. Have a good day!


Support underscore in Database name

What problem are you facing?
Our db names contain underscore which is not allowed in k8s metadata.name
How could Crossplane help solve your problem?
Maybe provider-sql could provide an option for we specifying a name other than using metadata.name as the db name?

This would be nice indeed and it's kinda related to what I said here https://github.com/crossplane-contrib/provider-sql/issues/58#issuecomment-1008059074

What about using the crossplane.io/external-name annotation? The following will create a database with the name db_with_underscore
apiVersion: postgresql.sql.crossplane.io/v1alpha1
kind: Database
metadata:
  annotations:
    crossplane.io/external-name: db_with_underscore
  name: example
spec:
  forProvider: {}

As @petteja proposes, you can use the  External Name annotation to configure the name of a database instead of using the k8s object metadata.name.


pythonPackages.bravado-core: init at 5.16.1

Motivation for this change
Bravado is a python client library for Swagger 2.0 services
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

https://github.com/NixOS/nixpkgs/pull/81186
3 package built:
python27Packages.bravado-core python37Packages.bravado-core python38Packages.bravado-core```


I don't own a phone

Am I just locked out of all my accounts forever because I don't own a phone and thus cannot 2 factor authenticate?

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

ID: 276c38fe-aa72-6afa-23d8-14ff206c6f50
Version Independent ID: 9ffe59dd-c667-4802-1da0-6917638804c5
Content: Common problems with account two factor authentication - Azure AD
Content Source: articles/active-directory/user-help/multi-factor-authentication-end-user-troubleshoot.md
Service: active-directory
Sub-service: user-help
GitHub Login: @curtand
Microsoft Alias: curtand

@Jasonvgrace we'll review your feedback and get back to you shortly. Thanks.

@Jasonvgrace If you lost your phone then you need to talk to your Organization's helpdesk as mentioned under the section. Please let me know if you need any specific help.

@Jasonvgrace We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


automatic release on tag

@olafurpg says that this is already a thing in drone: event: when: [tag], and with our recent build refactoring we're almost there infrastructurally. Looks legit.

This may give hints how to publish to sonatype from travis

https://github.com/lucidsoftware/neo-sbt-scalafmt/blob/7321eeddbf52f2a9e3ffa44e061eebeb3d1febb4/build.sbt#L18
https://github.com/lucidsoftware/neo-sbt-scalafmt/blob/7321eeddbf52f2a9e3ffa44e061eebeb3d1febb4/.travis.yml#L22-L29

Removing this from milestone, we can release stable releases manually for now.

Fixed in #1029, 2.0.0-M1 was released with tag push 👏


Value of switch never changes.

How does one get the value of a switch upon start up? I tried button.read and button.readSync() and neither give the info needed.

The read and readSync methods are the correct methods to use.
Based on the information provided it's difficult to determine what the problem is.

What type of board is being used?
What is the number of the GPIO being used?
What is the number of the pin on the expansion header being used?
Exactly how is the button connected to the GPIO? A photo that shows everything clearly would help a lot here.
Please post a complete program that is as short as possible that can be used to reproduce the problem.

@thomaskblr any news on this one?

Yes it was mistake on my end.  The documentation could have explained things a little better.  Thank you
On Jun 29, 2018, at 14:14, Brian Cooke<EMAIL_ADDRESS>wrote:
@thomaskblr any news on this one?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Thanks for the feedback. A PR to improve the documentation or an issue describing what could be improved would be more than welcome.


[system-probe] Don't write DNS mappings if an IP maps to more than 1000 domains

What does this PR do?
DNS mappings for this many domains are not usually useful, and can cause backend problems.
Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?

@kevinconaway we'll now throw away any extra entries


Allow set proxy to use

Set a proxy to use for the request

What would be the use case for this?

Closing in favor of #216.


[Gssoc23] Css animation

Describe the project you want to add with tech stack
this is a bouncing ball animation with css

Expected behavior
A bouncing ball is animated using css

Screenshots (optional)

Additional context (optional )

@MohitGupta121 @TusharKesarwani Kindly assign this issue.


🐞  Dockerfile build support doesn't produce any outputs

What is the issue?
building a Dockerfile with dagger doesn't show any of the outputs the Dockerfile currently performs. This used to be the case before v0.11.x so it's very likely a regression on the new telemetry solution.
Dagger version
v0.11.1
Steps to reproduce
FROM alpine

RUN find /

func (m *Test) Build(ctx context.Context, df *File) (*Container, error) {
	return dag.Directory().WithFile("Dockerfile", df).
		DockerBuild().Sync(ctx)
}

running the following function via dagger call build --df Dockerfile doesn't show the find  output the Dockerfile is currently performing
Log output
N/A

cc @vito

closing since its fixed in v0.11.6


Rapier backend doesn't work

I was trying to get rapier backend to work for hours.
Then I tried the example rapier.rs copy pasted to my project which actually turns out that it doesn't works.
Tested with the following dependencies
[dependencies]
bevy = { version = "0.12.1" }
bevy_mod_picking = { version = "0.17.0", features = ["backend_rapier"]}
bevy_rapier3d = { version = "0.24.0", features = ["debug-render-3d"] }

You're using the wrong bevy_rapier3d version. See https://github.com/aevyrie/bevy_mod_picking/blob/main/backends/bevy_picking_rapier/Cargo.toml#L25.


update containerd to 1.5.9

What type of PR is this?
/kind feature
Optionally add one or more of the following kinds if applicable:
/kind api-change
/kind deprecation
/kind failing-test
/kind flake
/kind regression
-->
What this PR does / why we need it:
updates containerd version to 1.5.9. this is needed to make
https://github.com/kubernetes-sigs/cri-tools/pull/857
pass

@feiskyer please review this pr
we need it to pass #857

@mikebrow please take a look

Just merged https://github.com/kubernetes-sigs/cri-tools/pull/858. @minbaev could you rebase to master and trigger the CI again?

Just merged #858. @minbaev could you rebase to master and trigger the CI again?

it can be merged now, thanks


IStatePropertyAccessor::GetAsync allows you to not specify a default value factory, but if you don't this the method will throw when it's the first time accessing the value

Version
4.1.x
Describe the bug
The IStatePropertyAccessor<T>::GetAsync API allows specifying a factory method that will provide a   default value if none exists, but if you don't supply one it will throw the first time you call the method if no value exists rather than just giving you the "natural" default value for the type you're using (e.g.   default(T)).
To Reproduce
Steps to reproduce the behavior:

Define a property as CreateProperty<int>
Create a bot that takes the IStatePropertyAccessor<int> via the constructor
In the bot's OnTurn implementation call GetAsync(turnContext) (i.e. no default value factory)
A MissingMemberException is thrown saying there's no default value

Expected behavior
I would expect the default, pit of success behavior to return the "natural", default value for the T which should just be default(T).

@drub0y thanks for the issue, please take a look at this implementation, this capture the expected behavior and works with the Dialog stack (note thanks to @cleemullins we explicitly defined this for ref semantics - its implicit in the implementation in BotBuilder)
https://github.com/Microsoft/BotBuilder-Samples/blob/master/samples/csharp_dotnetcore/42.scaleout/RefAccessor.cs
If you think this isn't a good reference implementation then we could discuss that. Closing this here.

Sorry, I'm not sure how this addresses the actual issue at hand? 🤔
This is a behavior that's shipping in the box right now with the BotStatePropertyAccessor1 implementation of IStatePropertyAccessor<T> so I think it should be addressed directly. Pointing at a sample that shows how someone can build their own implementation that behaves the way they want doesn't really help the typical developer who sits down with the framework and just wants to write a bot with the SDK.
If we want to say this is "by design", while I disagree w/the design, I could at least accept it because I'll be able to point developers at the response as a definitive stance on the implementation.
1 I probably have been more specific about the behavior being related to the BotStatePropertyAccessor class specifically, but it's technically the only implementation in the box.

OK that's a different issue then. And to be clear this isn't an issue with the current usage, specifically with Dialogs, is that correct? So the scenario you are envisaging is someone who actually decides to attenmpt to use this state model and not use Dialogs, is that correct?
Anyhow we can use this same issue - but I'll retitle it.

Note the only usage of this API in the product is Dialogs and that code does provide the factory. So this is specifically an issue for someone writing code that uses the state model directly.

Correct, nothing to do with Dialogs (specifically). I should note that JavaScript/TypeScript behavior is what I'm suggesting above where it will return undefined (the "natural" default value there obviously) instead of throwing an error. So this would align the behavior cross-platform as well.


Error during restore with generic image and mapped dvd (NAV2015)

When i try to run a container with the generic image i get the following error:
Database restore operation failed due to the following error returned by SQL Server:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
at <ScriptBlock>, C:\Run\navinstall.ps1: line 126
at <ScriptBlock>, C:\Run\start.ps1: line 114
at <ScriptBlock>, <No file>: line 1

I'am using NAV.8.0.50527.CH.DVD to start the image.
Here is my command:
docker run -e accept_eula=Y --volume "C:\temp\NAV.8.0.50527.CH.DVD:C:\NAVDVD" --name nav2015 --security-opt "credentialspec=file://LOGContHosts.json" --network=LAN --env ExitOnError=N  microsoft/dynamics-nav:generic-ltsc2019

When i connect to the container i can see that the sql server service stops during the restore
What am i doing wrong?

Unfortunately not - NAV 2015 images are not really supported. I have tested that you can do the most basic stuff with NAV 2015.
Lets see if anybody else have experiences with NAV 2015 and gMSA?

If i try to create my own image by using the build scripts in this repo, i get the same error during the last build step RUN \Run\buildimage.ps1
When i stopped some other containers running and some other processes on my machine, it worked. So i guess it could be realted to the timeout of 300 seconds in navinstall.ps1? Would that throw such an error message?
New-NAVDatabase -DatabaseServer $databaseServer `
                -DatabaseInstance $databaseInstance `
                -DatabaseName "$databaseName" `
                -FilePath "$databaseFile" `
                -DestinationPath "$databaseFolder" `
                -Timeout 300 | Out-Null

Yeah, I guess this could very well be a perf. issue during build. If you are cloning the project to do your own build, you can also override the navinstall.ps1 with a new version changing this.


six.moves

I am using: from keras.models import Sequential
and I get
from six.moves import range
ImportError: cannot import name range?
I have the latest six installed

I have version 1.8.0 installed and Keras works fine, maybe try reinstalling it (https://pypi.python.org/pypi/six)

You appear to have a version of six that is older than 1.3.0. Just install the latest version.


Documentation

Description
Undocumented parts:

Parameters to init of BaseClass are undocumented.
calculate_kd_loss() for every class other than BaseClass.
All NoisyTeacher, orignal, attention require params in addition to BaseClass params.
Citations to papers in classes definition (?)
ResNet and other Models

This is not a priority obviously, we can do them in between other new paper implementations, I guess.

I guess we should be doing all of this as of now shouldn't take much time as well. @avishreekh, Can you take this up?

I guess we should be doing all of this as of now shouldn't take much time as well. @avishreekh, Can you take this up?

Yes sure


Kong node is not registered in kong.nodes Cassandra table

I have successfully created a two-node Cassandra cluster and data is being replicated between the nodes of the cluster. I have also created a Kong cluster containing two nodes. When I start each Kong node, it does indeed communicate with Cassandra and writes to the database and I have verified that the data written to Cassandra is replicated between the Cassandra nodes. Unfortunately, the Kong node do not communicate with each other; in essence they can't auto-join the cluster.  Below is the console output of the startup:
[INFO] Kong 0.6.1
[INFO] Using configuration: /etc/kong/kong.yml
[INFO] database...........cassandra keyspace=kong ssl=verify=false enabled=false replication_factor=1 timeout=5000 replication_strategy=NetworkTopologyStrategy contact_points=<IP_ADDRESS>:9042,<IP_ADDRESS>:9042 data_centers=DC1=2
[INFO] dnsmasq............address=<IP_ADDRESS>:8053 dnsmasq=true port=8053
[INFO] nginx .............admin_api_listen=<IP_ADDRESS>:8001 proxy_listen=<IP_ADDRESS>:80 proxy_listen_ssl=<IP_ADDRESS>:443
[INFO] serf ..............-profile=wan -rpc-addr=<IP_ADDRESS>:7373 -event-handler=member-join,member-leave,member-failed,member-update,member-reap,user:kong=/usr/local/kong/serf_event.sh -bind=<IP_ADDRESS>:7946 -node=mycompany.net_<IP_ADDRESS>:7946 -log-level=err
[INFO] Trying to auto-join Kong nodes, please wait..
[WARN] Cannot auto-join the cluster because no nodes were found
[OK] Started

The ports on which the nodes uses to communicate between each other have been opened and I have indeed verified that when both nodes are running I can access port 7946 from the neighboring node, as a Kong node is bound to this port.
What I found most peculiar is that even when a single node is running, Kong didn't write to the kong.nodes table. I would assume that if this table is not written to the kong.nodes table, Serf doesn't know how to determine which nodes are available. Is there a reason why this is not working as expected or is my assumption of how this should work invalid?

If Kong is unable to write the the nodes table, it this should be reflected in an error in error.log. Can you please check and let me know if you see anything suspicious?

Other than the following type of entry generated each time I start a Kong node, there isn't anything of note in the error.log file.
2016/02/18 21:47:28 [notice] 30035#0: signal process started

This error is repeated in the logs with the number before # and the timestamp being the only variable parts.

A few questions:

What version of Cassandra are you using?
Port 7946 should be open for both TCP and UDP traffic.

To manually invoke the cluster join, ssh into one Kong node and run the following command:
$ serf join <IP_ADDRESS>:7946

where <IP_ADDRESS> is the IP address of the other node. What output do you see?

I'm running Cassandra 2.2.5. Port 7946 is open for both protocol types.
I just manually invoked  the cluster join using the suggested command above and it produced the following output:
[afajem@kong ~]$ serf join <IP_ADDRESS>:7946
Successfully joined cluster by contacting 1 nodes.

After running the command, I then went ahead and checked the members of the cluster, using the cluster command on the Kong CLI and got this output:
[afajem@kong ~]$ kong cluster members
[INFO] Using configuration: /etc/kong/kong.yml
kong1_<IP_ADDRESS>:7946   <IP_ADDRESS>:7946  alive
kong2_<IP_ADDRESS>:7946  <IP_ADDRESS>:7946  alive

One thing to note is that I'm starting Kong using sudo.  Running the same cluster command above without sudo yields an error stating:
[INFO] Using configuration: /etc/kong/kong.yml
[ERR] serf is not running

No idea if this might have something to do with it.

@afajem, could you try to replicate this bug with 0.7.0 RC1? There was a bug in the previous 0.6.x versions, where Kong was instructing Serf to use the /tmp folder for a log file, which not always had permissions to do. This may be the cause of the failure.
Version 0.7.x fixes this bug, and I am curious to see if it also fixes your problem.

OK I'll give 0.7.0 RC1 a shot and check back with you shortly. Asking the obvious here, but I'm assuming Cassandra 2.2.5 should work as the install instructions state 2.2.x.
Also any idea when 0.7.0 will be released? Just a very rough estimate would do, as we plan to go live at the end of next month.
Thanks so much for your assistance thus far.

In one or two weeks. Looking forward to seeing if 0.7.0 fixes it.

Thanks for the release estimates.
I was able to successfully upgrade to 0.7.0 RC1 without any issues. Unfortunately the nodes are still not talking to one another. The Cassandra kong.nodes table is still not getting populated. The logs are now being written to nginx home (/usr/local/kong)
I double checked my port rules through iptables and port 7946 appears to be open:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere             udp dpt:7946
   57  3420 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:7946 flags:FIN,SYN,RST,ACK/SYN

I also updated the cluster_listen ip and port to explicitly point to the node's IP address and that didn't make a difference.

I think I may have an idea of what's happening here - what OS are you running? I want to give you a patched version and see if that fixes it.

RHEL 7.2
Thanks!

I will push 0.7.0 RC2 in a couple of hours.

Perfect. I'll check it out later tonight.
Thanks so much again for the prompt response. Cheers.

@afajem here you go: https://github.com/Mashape/kong/releases/tag/0.7.0rc2

:tada: :confetti_ball: Success! I upgraded to 0.7.0 RC2 and it worked the first time.
Kong startup logs:
[INFO] Kong 0.7.0rc2
[INFO] Using configuration: /etc/kong/kong.yml
[INFO] Setting working directory to /usr/local/kong
[INFO] database...........cassandra keyspace=kong ssl=verify=false enabled=false replication_factor=1 timeout=5000 replication_strategy=NetworkTopologyStrategy contact_points=<IP_ADDRESS>:9042,<IP_ADDRESS>:9042 data_centers=DC1=2
[INFO] dnsmasq............address=<IP_ADDRESS>:8053 dnsmasq=true port=8053
[INFO] serf ..............-profile=wan -rpc-addr=<IP_ADDRESS>:7373 -event-handler=member-join,member-leave,member-failed,member-update,member-reap,user:kong=/usr/local/kong/serf_event.sh -bind=<IP_ADDRESS>:7946 -node=kong2_<IP_ADDRESS>:7946 -log-level=err
[INFO] Trying to auto-join Kong nodes, please wait..
[INFO] Successfully auto-joined <IP_ADDRESS>:7946
[INFO] nginx .............admin_api_listen=<IP_ADDRESS>:8001 proxy_listen=<IP_ADDRESS>:80 proxy_listen_ssl=<IP_ADDRESS>:443
[OK] Started

Cassandra kong.nodes table:
cqlsh> select * from  kong.nodes ;

 name                     | cluster_listening_address | created_at
--------------------------+---------------------------+--------------------------
 kong1_<IP_ADDRESS>:7946 |        <IP_ADDRESS>:7946 | 2016-02-21 01:41:02+0000
 kong2_<IP_ADDRESS>:7946 |        <IP_ADDRESS>:7946 | 2016-02-21 01:42:52+0000

Thanks a million @thefosk for getting this issue resolved so quickly. It's really appreciated.
Cheers.


stats aggregations

I can't seem to get stats aggregations to work.  I get back something like
"unit_price_stats" => %Snap.Aggregation{
      buckets: nil,
      doc_count: nil,
      doc_count_error_upper_bound: nil,
      interval: nil,
      sum_other_doc_count: nil,
      value: nil
    }

I think the problem is that elasticsearch doesn't return buckets etc. for stats aggregations - it returns something like
"aggregations": {
    "grades_stats": {
      "count": 2,
      "min": 50.0,
      "max": 100.0,
      "avg": 75.0,
      "sum": 150.0
    }
  }

Thanks - can you share the query you're using?

Hi @tomtaylor  this is the documentation for the stats aggregation: https://www.elastic.co/guide/en/elasticsearch/reference/8.11/search-aggregations-metrics-stats-aggregation.html
I was surprised that this doesn't follow the standard aggregation.
It seems to be a special aggregation.
Maybe an additional struct StatsAggregation? And then one can match on the values of the map to determine whether to return a Snap.Aggregation or a Snap.StatsAggregation?
Something along the lines of:
  def build_aggregations(aggregations) when is_map(aggregations) do
    Map.new(aggregations, fn
      {key, %{"count" => _, "min" => _, "max" => _, "avg" => _, "sum" => _} = value} -> {key, Snap.StatsAggregation.new(value)}
      {key, value} -> {key, Snap.Aggregation.new(value)}
      end)
  end

yeah something as simple as that would be awesome, but at a high level elasticsearch/opensearch support 2 types of aggregations, one is called a bucket aggregation which seems to be supported and the other type is a metrics aggregation which isn't.
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-stats-aggregation.html

even if we had a generic aggregation where it just returned the ES data as json it would at least mean that there was some way to get it with Snap


Fix potential github action smells

Hey! 🙂
I've made the following changes to your workflow:

Use cache parameter instead of cache option

Using the cache option from the setup/java is easier to configure and thus less prone to mistakes. Furthermore, it makes the workflow smaller and easier to read and understand.

Avoid jobs without timeouts

Jobs without a timeout can cause runners to be occupied when some process falls into an infinite loop or has multiple retries to perform a certain task, which will inevitably fail. Furthermore, it is also useful to be notified when a test-suite all of a sudden takes a lot longer than it used to, considering keeping tests fast is a good practice.

(These changes are part of a research Study at TU Delft looking at GitHub Action Smells. Find out more)

Thank you for the approval!
I'll have a look if I have some time to spare! :)
I noticed the lint job is failing because of some markdown links giving a 404? Would you like to have that fixed in this PR or in a different one?

maybe you can rebase this and possibly it will sort out those links? I think a recent change fixed it.

@codefromthecrypt Ah yes that did indeed fix the problems! Thank you

thanks for the help and teaching us new tricks @ceddy4395!


Connect language app api to db container

[ ] Add postgres lib/client to node app
[ ] Determine db query implementation:

ORM?

Prisma
Drizzle

Query builder

Kysely

Decided to go with Prisma


Bug wit current AzureAdOidcConfiguration - it does not support OAuth 2.0 endpoint

DiscoveryURI is hardcoded to:
return "https://login.microsoftonline.com/"+tenant+"/.well-known/openid-configuration";
It should also support:
https://login.microsoftonline.com/tenantid/v2.0/.well-known/openid-configuration

If you set the tenant property to "tenantid/v2.0", the second URL is supported, isn't it?

I suppose you are correct....I don't like overloading the tenantid with a version. Other calls to AzureAd will require ONLY the tenantid ( future PRs ).
I am working on a PR to add a version attribute, but testing my app with v2.0 is not working as expected.
In the 2.2 branch I had been getting the error: "AADSTS70001: Application 'XXX-XXX-XXX-XXX' is not supported for this API version." I am not seeing that error anymore and wondering where it has gone to.
To summarize, I just am not sure that AzureAd v2.0 is 100% ready for release.

Yes, it's a bit hacky. As we have an AzureAdOidcConfiguration object in the version 3.0.0, we could have maybe different configuration components for the different versions supported by AzureAD...


Adds support for mentions in room description

Details

Fixed Issues

https://github.com/Expensify/App/issues/45425
PROPOSAL:
Tests

Create a room
Update the room description mentioning a report and a user, like join #announce and contact<EMAIL_ADDRESS>Verify the comment with the description has the report and the user names

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@rlinoz
This is not related to the changes in this PR but accountID is shown as the user name because here
https://github.com/Expensify/App/blob/371093660f398a3895726931baa303ce9d823e5d/src/libs/Parser.ts#L18
we are considering only login and accountID even though the displayName, firstName and lastName are available in personalDetails.

Shall we create an issue for that and fix it before merging the present PR? Or shall we merge this ignoring that?

Can you help me with reproduction steps? I think it should be fine to fix it in this PR

Noting another backend bug here.
The description added at the time of room creation is not saved. Backend resets the description.
Repro steps:

Start Chat > Room > Input some description > Create Room
There is no description below the room the report screen
Click on Header to go to room details page
There is no description here

https://github.com/user-attachments/assets/6422a32b-0401-415a-93d5-d904cfa578d0

I agree I should have updated the updateWorkspaceDescription, let me undo that.
As for creating a new room, we have a bug currently where the description comes back empty, which makes it weird to test it here. The backend PR is fixing that and the test step for that will be there.
But when updating the room description we would get the mention HTML in the update message instead of the mention, so that is why the testing steps are for update.

The bug with the accountID should be fixed now.

Just checked why login was used here at all. Here @war-in changed it to login instead of displayName.
I think this is useful when copying and pasting the message and the mention is correctly parsed in the composer.

https://github.com/user-attachments/assets/9d840682-3c50-4e80-bfa5-0096912eceac
We use LocalePhoneNumber.formatPhoneNumber for getEffectiveDetails. This breaks the phone number with a space and the parsing of the phone number for the copy paste does not work.
I think we should change the getEffectiveDetails to
return Str.removeSMSDomain(personalDetail?.login ?? '') || personalDetail.displayName;

Interesting, you get different results than I do

As for the copy to clipboard we have that problem in normal comments, we should address that instead of not using the display name, since that is needed sometimes.
Anyway, I will take a better look into all of this tomorrow.

@c3024 I tested the latest version with the same phone number you were using and it seems to work now, we only return the @expensify.sms domain from getEffectiveDisplayName when we don't understand the phone number as a valid one, so maybe something got fixed..
Anyway, I think we only have the copy to clipboard problem, but we already have the same problem if mentioning a SMS user in any comment, so I think we should address that in another issue.

Ok, I think we are good in every instance here now, let me know if you find anything @c3024

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/Gonals in version: 9.0.15-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 9.0.15-9 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Update security-release-process.md with ref to security-release-team@ email

Previously release-managers-private@ was nested within<EMAIL_ADDRESS>As of https://github.com/kubernetes/sig-release/pull/900, there will be a separate security-release-team@ email address.
The security/security-release-process.md  document should outline the new security-release-team@ email address and how this address should be used when wanting to bring the security release team into a discussion and allow release coordination of a security fix.

/cc @justaugustus

Corresponding releng tracking issue: https://github.com/kubernetes/sig-release/issues/896

/assign

/remove-lifecycle rotten
/lifecycle frozen
/reopen
This needs some input from @kubernetes/product-security-committee.
It's the last item for https://github.com/kubernetes/sig-release/issues/896.

/assign @saschagrunert

This needs some input from @kubernetes/product-security-committee.

Hey @kubernetes/product-security-committee :wave:, do you think you can provide the required information how to move forward with this topic?

/assign

@lukehinds thank you for picking this up! Can we provide anything from the SIG release perspective to support you?

Hey @lukehinds, may I ask you about an update on this?

Hey @lukehinds, may I ask you about an update on this?

https://github.com/kubernetes/security/pull/129/

Tim is reviewing https://github.com/kubernetes/committee-security-response/pull/129, so:
/unassign @justaugustus @saschagrunert


[Bug] master branch instead of main branch

Describe the bug
On the Branches video linked in Step 1 the language still uses "master" instead of "main".
To Reproduce
Steps to reproduce the behavior:

Go to Step 1
Click on Video: Branches
Listen to the recording

Expected behavior
It should say main instead of master.

Sheesh


[WIP] Move to TOML for manifest and lock

Fixes #119.
I'm doing this in stages so that we can identify when I'm off in the weeds or need to make more decisions about the config file format.

[x] Vendor https://github.com/pelletier/go-toml.
[x] Write manifest and lock in TOML format.
[ ] Read manifest and lock in TOML format (this is when the unit tests should all pass).
[ ] Remove old JSON files and logic.
[ ] (Optional) Bike-shed the look of the generated TOML, e.g. inline tables, indenting, key sorting, etc.

@sdboyer @tro3  I didn't find any reflection-based marshal magic for converting between structs and TOML in this go-toml package. If we want to go with this lib, it may make sense to contribute that functionality back into the library. For the moment, I am explicitly performing the mapping in MarshalTOML.
https://github.com/golang/dep/pull/342/files#diff-8e0a04a8bff74b300db5882b4be50589R133
Do you think that makes sense or should I try out another lib?

@carolynvs hmm...that puts me on the fence about it, as I'd generally rather have the (presumably cross-TOML implementation portable) struct tags as the canonical way of expressing this information, to minimize effort in the event that we switch TOML libs later. idk how much work that's really saving, though, so it seems like a soft requirement at worst.
Maybe some input from @pelletier here would be good - any plans to add reflection-based struct tag support to go-toml?

Eh, that was too wishy-washy, sorry. If we can have struct tags and reflection-based parsing, great. If not, well, it seems like the one-off implementation here isn't too awful. Either way, not a reason to derail the current track.
Is there are reason you're keeping the JSON struct tags around?

@sdboyer yes, reflection-based (un)marshaling is the next thing that I'd like to implement in go-toml. not eta on that though, but pull requests are welcome :)

@pelletier - I have some time coming up the next few weeks.  Mind if I take a crack at the reflection-based marshaling?  If so, I'll open an issue at go-toml and get you a WIP PR in the short term to make sure you approve of the structure before I dive in too deep.  Thoughts?

@tro3 sounds great!

@sdboyer No reason, just hadn't gotten to removing all the json stuff yet. 😃  I've added a task to the PR to make that more clear.

Changed manifest format. dependencies and overrides use an array of tables instead of maps now, which is easier to work with.
ignores = ["github.com/foo/bar"]

[[dependencies]]
  name = "github.com/sdboyer/gps"
  version = ">=0.12.0, <1.0.0"

[[dependencies]]
  name = "github.com/babble/brook"
  revision = "d05d5aca9f895d19e9265839bffeadd74a2d2ecb"

[[overrides]]
  branch = "master"
  name = "github.com/sdboyer/gps"
  source = "https://github.com/sdboyer/gps"

Update all the test files from JSON to TOML

Poor man's mapping from TOML to structs. Can't wait for https://github.com/pelletier/go-toml/pull/149! ❤

Couldn't now overrides be just an attribute on the dependency itself?

@omeid Let's not make changes to the config file structure in this PR, beyond the initial scope of switching from JSON to TOML. 😀 It's already a pretty big change, and I want to limit the amount of regressions/confusion it may cause.

For generated TOML, I think it would be nice to use inline tables to get each dependency onto a single line.
I'm think that may work better for diffs/merges, though I'm not totally sure. Also it's nice for rearranging the dependencies by movings lines up/down in an editor (for super organized types).

@nathany I think that depends on how we feel about long lines in the file. Personally, I find it hard to read.
For example, here's what I think the lock would look like with inline tables. Note, I am cheating a bit by using "." for the package list, to make the shortest possible entry.
memo = ""
projects = [
 { name = "github.com/sdboyer/deptest", packages = ["."], revision = "ff2948a2ac8f538c4ecd55962e919d1e13e74baf", version = "v0.8.0" }
 { name = "github.com/sdboyer/deptestdos", packages = ["."], revision = "a0196baa11ea047dd65037287451d36b861b00ea", version = "1.0.0" }
]

Though I'm not 100% sure that's how an array of inline tables should look? Either way support for changing the formatter in go-toml would be needed, not sure about the parser.

Okay. Those are some pretty long lines.
It's probably best to just use it for a while to see how well diffs/merges work with the multi-line syntax. Thanks

I've updated the lock diff to output matching TOML. I've also tried out @tro3 's reflection based mapping, it's super close and I think it's worth waiting for it, removes a TON of code. 😃

https://github.com/pelletier/go-toml/pull/149 has been merged, bringing reflection-based marshaling goodness to go-toml. props to @tro3 :)

We need to roll the file name change into this, too, so that we minimize the amount of change that goes in at once. We're still pondering those, but...
Cursory look has me thinking this is pretty good. I'll look more soon, I hope later tonight :)

@sdboyer You mentioned rolling up the filename changes into this PR to limit churn. Do we have final names yet?

@sdboyer @tro3 Right now go-toml doesn't preserve the ordering of the fields when marshaling, instead simply outputting them in alphabetical order:
[[projects]]
  branch = "master"
  name = "github.com/pelletier/go-buffruneio"
  packages = ["."]
  revision = "c37440a7cf42ac63b919c752ca73a85067e05992"

instead of this (which matches the ordering of the fields as defined on the struct)
[[projects]]
  name = "github.com/pelletier/go-buffruneio"
  branch = "master"
  revision = "c37440a7cf42ac63b919c752ca73a85067e05992"
  packages = ["."]

Is this something that I need to address as part of this PR, in the name of not changing the file structure again later? It may be a big change to how the TomlTree is represented internally and could be a lot of work, so I wanted to get your thoughts (or maybe @tro3 you see a clean way of supporting that)?

Rebased, resolving the merge conflicts from updating gps
Added constants for the file names to the lock package
Updated LockDiff formatting to the toml struct tags

Looking into making the auto-indentation configurable next.

Is it really needed?  Don't know if he key order is important.
In any case, I think it's an easy tweak to go-toml, as I recall an explicit sorting of the keys. If correct, this would just have to be bypassed with a configure option of some sort.
I'm on vacation though, so if it needs to be me, it will have to wait a while.

I spoke with @sdboyer and we will leave off trying to make the toml file format "pretty", so I am not going to try to tackle the indenting or sorting in this PR. I believe I've hit all the rest of the review feedback so it's ready for another look.

OK for filenames, let's do Gopkg.toml and Gopkg.lock.

File renaming is in! 💥

Is it possible, or was it already decided not, to read the old format and update the relevant files?
As the migration path, as I understand it, would be to remove the old files and generate new lock files - which would lock to different revisions?
Detecting existing files, reading them and rewriting to new files and new format would obviously be ideal from an early user's perspective. Perhaps a flag, or a separate application (depfix)?
I don't see this as a major requirement at all, just asking.

Sorry for delay on merge, here. I was trying to get things together with a blog for dep (re: #294), and I put this in the queue behind doing that. Looks like I should have that blog done tonight, and I plan to merge this once it's all set up 😄

And in, finally. Thanks! 🎉 🎉 🎉 🎉


Add a workflow "overall_tasks" field

We need a field for out-of-normal-flow workflow tasks (I've been calling them overall_tasks, I'm not crazy about the name) like Snapshot Serengeti's "Fire/Nothing here" checkboxes.
It's just an array of tasks. Tasks are formatted the same as the tasks field values.
Example here: https://github.com/zooniverse/Panoptes-Front-End/blob/d6c371535a894d47240f724d85e9474d3f1a40a4/app/classifier/mock-data.coffee#L11-L27

Why can't this just be a task with an answer that ends the workflow?

I think this is mostly to reproduce the Serengeti interface as closely as possible.

how about "persistent task" for a name? (Since it persists across all other tasks within a workflow?)
I don't have a good use case for this task outside of a snapshot serengeti style filtering task though.

I'm just confused why the survey task can't just auto-generate a button that behaves this way, without needing back-end support? Or have a blank option in the list survey list?

It’s mostly an elegance point - but it would be most useful for ‘and’ classifications.
e.g. If we wanted to use Galaxy Zoo to record galaxy morphology and note any asteroids that appeared, but didn’t want the main galaxy related task to include anything about asteroids we could have a ‘Asteroids?’ checkbox.

On 30 Sep 2015, at 03:16, Edward Paget<EMAIL_ADDRESS>wrote:
I'm just confused why the survey task can't just auto-generate a button that behaves this way, without needing back-end support? Or have a blank option in the list survey list?
—
Reply to this email directly or view it on GitHub https://github.com/zooniverse/Panoptes/issues/1391#issuecomment-144074107.

This will also be very useful for humanitarian projects or any kind of project that has potentially disturbing images in it.

So this field just needs to be a string field with a key for one of the tasks? I'll add it in that case.

An array of objects won't work?

So it's a whole separate set of tasks?

Yeah, a task will either be a normal-flow task or in the special persistent list. They won't mix.

+1 to this, v useful for serengeti

@brian-c what's the status on this, are you doing this client side or still need api support?

On hold for now, might be replaced by the combo task.

I'm closing for now, @brian-c re-open if/when you need api support for this.

@brian-c what is the combo task? is there anything you can link me to to find out about that?

@alexbfree have a look at zooniverse/Panoptes-Front-End/pull/2137 for the combo task.

Thanks Jim


App disconnects from band when i open switch to an other app

Hello, first i would like to thank you for this project ! Good job
Is it possible to maintain the band connection in the background ? even if the app is closed or if i switch to another app ?
Thanks, have a nice day

Hello,
Yes, it's possible (at least for 3rd generation of miband) but additional changes in logic are required. Frankly speaking I did not cover this moment in PoC.


How to Set Loop + SlidePerView

I want to make slide with SlidePerView 3, but when looped, it seems "white space" between last slide and first slide.
How to setup slide per view: 3 with infinite loop option without disconnected each slides?
Thanks before.

Would be good to see live example or JSFiddle with the issue


Some file names are wrapped

Some file names are wrapped in the header, although there is enough space. And strangely not in the preview but then in the final MoviePrint. No matter if I set jpg or png.
Preview:

MoviePrint:

This is a very strange bug. So far I could not find the exact cause. But if I write the L before the last word lowercase instead of uppercase, it doesn't wrap:

To reproduce. Filename is:
This Ebosl GnnL Testaronium

Hi @reaseno, thanks for bringing this up. The actual MoviePrint is rendered slightly different so it can be saved as an image. This leaves some inaccuracy which in your case has the unfortunate effect that it breaks the line.
Unfortunately this project is currently stale as I am busy with work. I will leave it open, but I am not sure when/if I will get to it. Sorry.

Any update on this?
Perhaps an option for the user to select a smaller fontsize or to edit the title from within Movieprint?

Hi @LighScan, I am sorry to say, but this project is no longer under development as I don't have the time to make any updates.


fix home page layout

prevent image overflow on wide screens

Before:

After:

Thanks so much for making the fix! And apologies again for the slow review. A lot of gears turning lately -- we'll be better about keeping up with this. :) A bit cleaner and DRYer as well.


LoadError: UndefVarError: N not defined

I just tried to upgrade to jlrs 0.20.0 updated all the rust side code and it compiles creating a shared library.
But I am running into a Library Load error on the julia side of things. I am using JlrsCore 0.4.0.
Previously using jlrs 0.19.2 and JlrsCore 0.3.0 this did not happen. Any Ideas why this is happening. I tried removing singular functions and types from the module, but I have not figured out where this is coming from.

That's odd, it's an error originating from Julia, but I can't find any variable named N being accessed in jlrs or JlrsCore.  Are you able to load JlrsCore in a Julia session, and could you share the backtrace?

Yes I am able to load JlrsCore, i am using julia version 1.10.4
This is the Backtrace I am getting when tring to import my Package with the jlrs Bindings to the crate:
ERROR: LoadError: UndefVarError: `N` not defined
Stacktrace:
 [1] top-level scope
   @ none:1
in expression starting at /home/judge/development/core/CoreLibrary.jl/src/Raw.jl:1
in expression starting at /home/judge/development/core/CoreLibrary.jl/src/CoreLibrary.jl:1
in expression starting at stdin:3
  ✗ CoreLibrary
  3 dependencies successfully precompiled in 11 seconds. 5 already precompiled.

ERROR: The following 1 direct dependency failed to precompile:

CoreLibrary [c560e7d1-5c2b-42e0-af8a-98b688cd9fea]

Failed to precompile CoreLibrary [c560e7d1-5c2b-42e0-af8a-98b688cd9fea] to "/home/judge/.julia/compiled/v1.10/CoreLibrary/jl_JAVcrS".
ERROR: LoadError: UndefVarError: `N` not defined
Stacktrace:
 [1] top-level scope
   @ none:1
in expression starting at /home/judge/development/core/CoreLibrary.jl/src/Raw.jl:1
in expression starting at /home/judge/development/core/CoreLibrary.jl/src/CoreLibrary.jl:1
in expression starting at stdin:
Stacktrace:
 [1] precompile(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::@Kwargs{_from_loading::Bool})
   @ Pkg.API /usr/share/julia/stdlib/v1.10/Pkg/src/API.jl:159
 [2] precompile
   @ /usr/share/julia/stdlib/v1.10/Pkg/src/API.jl:147 [inlined]
 [3] #precompile#114
   @ /usr/share/julia/stdlib/v1.10/Pkg/src/API.jl:146 [inlined]

For some more context this is the Contents of Raw.jl it is the JlrsCore import of the shared library:
module Raw

using JlrsCore.Wrap

libpath = joinpath(dirname(@__FILE__), "../assets/libcore.so")
@wrapmodule(libpath, :core_bootstrap)

function __init__()
    @initjlrs
end

end

I've just run the export tests with Julia 1.10.4 on Linux and everything succeeded. It doesn't test precompilation though, which is precisely what's failing for you...
A few sanity checks:

Did you replace the old library with the newly built one?
Is the installed version of JlrsCore 0.4.0 according to pkg> status JlrsCore?
Does your library or wrapped code use or create a constant named N?
Does the library search path, includingLD_LIBRARY_PATH (assuming you're using Linux based on the .so extension), contain any lib directory of an old Julia installation?

Hi,
sorry for the delay in answering. I was busy chasing/solving other things. But I did have some time to deep a bit deeper:
To your sanity checks:
1 Yes I definitely replaced the library with the newly built one.
2 Output of status JlrsCore
pkg> status JlrsCore
Project CoreLibrary v0.6.1
Status `/home/judge/development/core/CoreLibrary.jl/Project.toml`
  [29be08bc] JlrsCore v0.4.0

4 Nope that is not the case
But Point 3 did bring me closer to the problem:
There is no direct use of any constant named N either in the rust code nor in the julia code. But …
There is a rust side export with something like the following signature:
julia_module! {
 fn convert(&self, data: TypedArray<f64>) -> JlrsResult<TypedArrayRet<f64>> as  convert;
}

If I remove this export from the module precompilation works again. With it it fails. Since I think there where some changes related to how jlrs 0.20.0 handles Arrays that might be the reason for this issue. This export was already part of a version of the library using jlrs 0.19.2 and it did work there, so this does seem to be a regression.
I would need some more time to write a full little example library replicating the issue.

Ah, that makes sense. Yeah, that would lead to an undefined N due to
unsafe impl<'scope, 'data, T: ConstructType, const N: isize> CCallArg
    for TypedRankedArray<'scope, 'data, T, N>
{
    type CCallArgType = Self;
    type FunctionArgType = Self;
}

unsafe impl<T: ConstructType, const N: isize> CCallReturn for TypedRankedArrayRet<T, N> {
    type CCallReturnType = TypedRankedArray<'static, 'static, T, N>;
    type FunctionReturnType = TypedRankedArray<'static, 'static, T, N>;
    type ReturnAs = Self;

    #[inline]
    unsafe fn return_or_throw(self) -> Self::ReturnAs {
        self
    }
}

which only works if N is known.
I'll try to fix it this weekend, as a work-around you should be able to use Value and ValueRet instead and cast the argument to a TypedArray in the function body.

Should be fixed by #137 and JlrsCore.jl 0.5.

Thanks I will give it a try tomorrow and will report the results.

I can confirm that using jlrs from the master branch together with JlrsCore=0.5.0 does fix the problem! Thank you very much!
Are you going to release jlrs=0.21.0?

Great!
And yeah, 0.21 should be released later this week.  There's a few small things I want to polish before doing so.

Fixed by 0.21


How to use? I didn't find webui.zip file.

I have tried zip all the files to webui.zip, and put it in utorrent folder, but it didn't work. My utorrent version is 2.2.1
Could you tell me how to use it please. Thanks very much.

Hi @Dreamray, this project is not active. I forked it, but never worked on it. You should try to use the original project that was forked.


Added a function to the core GIT library to allow use for Cygwin users

(Designed to be used by custom themes)
The prompt info for GIT takes an extensive time to return in Cygwin, due to the way Cygwin has to handle c++ forks.
This small addition means that the basic status is able to be displayed, but not taking an extensive amount of time to do so.

Pushed an update.

OK, now please squash your commits together in order to keep the history clean and atomic.
Then find some testers and ask for merge.

FYI, if you're interested in a broader fix for this, there are a couple other work-in-progress Pull Requests (#3725 #3220 #2386) that speed up git_prompt_status on Cygwin by replacing the grep shellouts with builtin zsh parsing support, or short-circuiting unnecessary git calls. Those will apply to any theme that uses the normal git_prompt_status, not just custom themes.
But it'll probably be a while before they get merged in, so you should go ahead with this PR.

I have squashed those two commits together now.  @apjanke, would you mind testing this, or be able to test it?

@robbyrussell; are you fine with this merge?

This should use the $ZSH_THEME_GIT_PROMPT_PREFIX/SUFFIX variables instead of hardcoding git:.
Also, use command git instead of just git, and you can simplify further by using git symbolic-ref -q --short HEAD, which returns the short version of the current branch (without refs/heads/) and won't show error messages as well.

@mcornella - I've modified it in the 3 ways you suggested above.

Used the shorter form of the git command suggested
Appended 'command ' to git. (why do we do that anyway?)
Used the $ZSH_THEME_GIT_PROMPT_PREFIX/SUFFIX variables

Used the shorter form of the git command suggested

:+1:

Appended 'command' to git (why do we do that anyway?)

That's to prevent aliases or functions being used: "we want the pure git command"..

Used the $ZSH_THEME_GIT_PROMPT_PREFIX/SUFFIX variables.

Can't see it, did you commit it?


Round Menu with Common Crafting Shapes on Hover + CTRL

This will have to wait for Minecraft 1.8 due to missing GUI input events in 1.7.10.


Handle large PRs more effectively

Been using this internally for a while now - actually very useful.
Wondering if there is a way to make it less noisy for large PRs.
When it reviewed a PR that changed 400 files from @import to @use it took .. a while to wade through the comments.
All in all great project!

I have recently asked the bot to comment only on substantive issues. Let's see how it behaves over the next few days.
Advice -- The default model configured in action is gpt-3.5-turbo. Try changing that to gpt-4 if you have access to it. That model is expensive, but the results are much better overall.

I tried GPT4, it cost me 80$ in the first day 🤣
Switched back to GPT4 earlier today and decided to use only-summary. Please let me know the results of your findings if you can remember to.

For summary, gpt-3.5-turbo is good enough. We use that for summary and gpt-4 for review. It's costing us in the $50-$80 ballpark each day.
Btw, my latest changes have improved the noise issue and suggestion accuracy. I will test with variety of PRs this week and tweak it further.

For now, I have added an @openai: ignore keyword that can be used to skip large PRs, which is especially useful when people are still working on it. It's also helpful if you would like to skip PRs that refactor the code.


Jealous by Oliver Nelson unsupported.

Check if issue with swaglyrics or whether song lyrics unavailable on Genius.

stripper -> Oliver-Nelson-Jealous

https://genius.com/Oliver-nelson-tobtok-and-sorana-jealous-lyrics


wrong bbox height and width values on coco kp export for single keypoints

Actions before raising this issue

[X] I searched the existing issues and did not find anything similar.
[X] I read/searched the docs

Steps to Reproduce

Create a project
Setup a skeleton with 1 keypoint
Annotate one image with any amount of objects
Export to COCO keypoints 1.0

Expected Behavior
The annotation file should contain bbox information computed from the keypoints. I.e.:
{"id":10,"image_id":1,"category_id":21,"segmentation":[],"area":0.0,"bbox":[1279.65,185.18,111.53,112.85],"iscrowd":0,"attributes":{"occluded":false,"keyframe":false},"keypoints":[1279.65,185.18,2],"num_keypoints":1}

What I get is 0.0,0.0 for bbox width and height
Possible Solution
No response
Context
On CVAT, a bbox is properly displayed around the keypoint. I would expect it to be exported as well, as it is the case when num_keypoints > 1
Environment
- cvat cloud

Please, refer to my answer in existing issue #6158

A point itself is infinitely small  object, it does not have width and height. So, everything is correct in your case.


support disabling the WAL

This patch adds the ability to disable the WAL. Some use cases may not require SlateDB to maintain its own WAL and prefer not to take on the cost of maintianing the WAL and restoring it. This patch allows clients of the DB to disable the WAL using a db option. Because this option is a bit risky - we wouldn't want it to be set to false by mistake - it's only enabled when a rust feature called wal_disable is enabled.

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