java.nio.channels.OverlappingFileLockException

Describe the bug
We're getting this error in our application using the Stream manager
  File "/usr/lib/python3.6/concurrent/futures/_base.py", line 425, in result
    return self.__get_result()
  File "/usr/lib/python3.6/concurrent/futures/_base.py", line 384, in __get_result
    raise self._exception
  File "/root/.local/lib/python3.6/site-packages/awsiot/eventstreamrpc.py", line 723, in _on_continuation_message
    raise shape
awsiot.greengrasscoreipc.model.ServiceError

This exception is raised in greengrass.log file
2023-09-11T08:22:28.756Z [ERROR] (AwsEventLoop 1) com.aws.greengrass.shadowmanager.ipc.UpdateThingShadowRequestHandler: handle-update-thing-shadow. Could not process UpdateThingShadow Request due to internal service error. {thing name=GVLT_850V-8304, shadow name=StreamInfo_8}
com.aws.greengrass.shadowmanager.exception.ShadowManagerDataException: com.aws.greengrass.shadowmanager.lib.org.h2.jdbc.JdbcSQLNonTransientConnectionException: (Message 90020 not found) [90020-200]
	at com.aws.greengrass.shadowmanager.ShadowManagerDAOImpl.getShadowThing(ShadowManagerDAOImpl.java:75)
	at com.aws.greengrass.shadowmanager.ipc.UpdateThingShadowRequestHandler.lambda$handleRequest$2(UpdateThingShadowRequestHandler.java:121)
	at com.aws.greengrass.ipc.common.ExceptionUtil.translateExceptions(ExceptionUtil.java:33)
	at com.aws.greengrass.shadowmanager.ipc.UpdateThingShadowRequestHandler.handleRequest(UpdateThingShadowRequestHandler.java:94)
	at com.aws.greengrass.shadowmanager.ipc.UpdateThingShadowIPCHandler.handleRequest(UpdateThingShadowIPCHandler.java:83)
	at com.aws.greengrass.shadowmanager.ipc.UpdateThingShadowIPCHandler.handleRequest(UpdateThingShadowIPCHandler.java:29)
	at software.amazon.awssdk.eventstreamrpc.OperationContinuationHandler.onContinuationMessage(OperationContinuationHandler.java:291)
	at software.amazon.awssdk.crt.eventstream.ServerConnectionContinuationHandler.onContinuationMessageShim(ServerConnectionContinuationHandler.java:53)
Caused by: com.aws.greengrass.shadowmanager.lib.org.h2.jdbc.JdbcSQLNonTransientConnectionException: (Message 90020 not found) [90020-200]
	at com.aws.greengrass.shadowmanager.lib.org.h2.message.DbException.getJdbcSQLException(DbException.java:622)
	at com.aws.greengrass.shadowmanager.lib.org.h2.message.DbException.getJdbcSQLException(DbException.java:429)
	at com.aws.greengrass.shadowmanager.lib.org.h2.message.DbException.get(DbException.java:194)
	at com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:206)
	at com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:182)
	at com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:103)
	at com.aws.greengrass.shadowmanager.lib.org.h2.engine.Database.getPageStore(Database.java:2659)
	at com.aws.greengrass.shadowmanager.lib.org.h2.engine.Database.open(Database.java:675)
	at com.aws.greengrass.shadowmanager.lib.org.h2.engine.Database.openDatabase(Database.java:307)
	at com.aws.greengrass.shadowmanager.lib.org.h2.engine.Database.<init>(Database.java:301)
	at com.aws.greengrass.shadowmanager.lib.org.h2.engine.Engine.openSession(Engine.java:74)
	at com.aws.greengrass.shadowmanager.lib.org.h2.engine.Engine.openSession(Engine.java:192)
	at com.aws.greengrass.shadowmanager.lib.org.h2.engine.Engine.createSessionAndValidate(Engine.java:171)
	at com.aws.greengrass.shadowmanager.lib.org.h2.engine.Engine.createSession(Engine.java:166)
	at com.aws.greengrass.shadowmanager.lib.org.h2.engine.Engine.createSession(Engine.java:29)
	at com.aws.greengrass.shadowmanager.lib.org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:340)
	at com.aws.greengrass.shadowmanager.lib.org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:173)
	at com.aws.greengrass.shadowmanager.lib.org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:152)
	at com.aws.greengrass.shadowmanager.lib.org.h2.Driver.connect(Driver.java:69)
	at com.aws.greengrass.shadowmanager.lib.org.h2.jdbcx.JdbcDataSource.getJdbcConnection(JdbcDataSource.java:189)
	at com.aws.greengrass.shadowmanager.lib.org.h2.jdbcx.JdbcDataSource.getXAConnection(JdbcDataSource.java:352)
	at com.aws.greengrass.shadowmanager.lib.org.h2.jdbcx.JdbcDataSource.getPooledConnection(JdbcDataSource.java:384)
	at com.aws.greengrass.shadowmanager.lib.org.h2.jdbcx.JdbcConnectionPool.getConnectionNow(JdbcConnectionPool.java:234)
	at com.aws.greengrass.shadowmanager.lib.org.h2.jdbcx.JdbcConnectionPool.getConnection(JdbcConnectionPool.java:199)
	at com.aws.greengrass.shadowmanager.ShadowManagerDAOImpl.getShadowThing(ShadowManagerDAOImpl.java:62)
	... 7 more
Caused by: java.lang.IllegalStateException: The file is locked: nio:/greengrass/v2/work/aws.greengrass.ShadowManager/shadow.mv.db [1.4.200/7]
	at com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:950)
	at com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.FileStore.open(FileStore.java:166)
	at com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.MVStore.<init>(MVStore.java:381)
	at com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.MVStore$Builder.open(MVStore.java:3579)
	at com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:170)
	... 27 more
Caused by: java.nio.channels.OverlappingFileLockException
	at java.base/sun.nio.ch.FileLockTable.checkList(FileLockTable.java:229)
	at java.base/sun.nio.ch.FileLockTable.add(FileLockTable.java:123)
	at java.base/sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1321)
	at com.aws.greengrass.shadowmanager.lib.org.h2.store.fs.FileNio.tryLock(FilePathNio.java:121)
	at java.base/java.nio.channels.FileChannel.tryLock(FileChannel.java:1191)
	at com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.FileStore.open(FileStore.java:163)
	... 30 more

it seems that there is some issue with the access to the database file.
Both files shadow.mv.db and shadow.trace.db are present in the work directory, I can provide them if you're interested.
To Reproduce
I don't know how to reproduce since I don't know the root cause.
Expected behavior
To work without issues or to have some error recovery mechanism.
Environment

NVIDIA Jetson Xavier NX
host OS: L4T 32.6.1 (based on ubuntu 18.04)
JDK version: corretto 17
Nucleus version: 2.11.2
Shadow Manager version: 2.3.3
Nucleus and all components are running in a docker container based also on L4T 32.6.1

Thank you in advance
Tomas

Hi,
Thank you for reporting this. Could you provide a bit more context on the issue with the following information?

Full Greengrass logs that led up to this error.
Any reproduction steps or changes made to system such as device/greengrass restart that might trigger this behavior?
Have you tried restarting Greengrass after facing this issue?

Unfortunately, I am not able to provide exact reproduction steps since it happened on a remotely running production device. However I did explore the logs I have in more depth and it seems that this problem is related to the available disk space.
Please see the attach stacktraces.
2023-09-09T07:13:04.593Z [ERROR] (AwsEventLoop 1) com.aws.greengrass.shadowmanager.ipc.GetThingShadowRequestHandler: handle-get-thing-shadow. Could not process GetThingShadow Request due to internal service error. {thing name=XX, shadow name=DeviceInfo}com.aws.greengrass.shadowmanager.exception.ShadowManagerDataException: com.aws.greengrass.shadowmanager.lib.org.h2.jdbc.JdbcSQLNonTransientConnectionException: (Message 90098 not found) [90098-200]	at
com.aws.greengrass.shadowmanager.ShadowManagerDAOImpl.getShadowThing(ShadowManagerDAOImpl.java:75)	at
com.aws.greengrass.shadowmanager.ipc.GetThingShadowRequestHandler.lambda$handleRequest$0(GetThingShadowRequestHandler.java:89)	at
com.aws.greengrass.ipc.common.ExceptionUtil.translateExceptions(ExceptionUtil.java:33)	at
com.aws.greengrass.shadowmanager.ipc.GetThingShadowRequestHandler.handleRequest(GetThingShadowRequestHandler.java:75)	at
com.aws.greengrass.shadowmanager.ipc.GetThingShadowIPCHandler.handleRequest(GetThingShadowIPCHandler.java:82)	at
com.aws.greengrass.shadowmanager.ipc.GetThingShadowIPCHandler.handleRequest(GetThingShadowIPCHandler.java:28)	at
software.amazon.awssdk.eventstreamrpc.OperationContinuationHandler.onContinuationMessage(OperationContinuationHandler.java:291)	at
software.amazon.awssdk.crt.eventstream.ServerConnectionContinuationHandler.onContinuationMessageShim(ServerConnectionContinuationHandler.java:53)
Caused by: com.aws.greengrass.shadowmanager.lib.org.h2.jdbc.JdbcSQLNonTransientConnectionException: (Message 90098 not found) [90098-200]	at
com.aws.greengrass.shadowmanager.lib.org.h2.message.DbException.getJdbcSQLException(DbException.java:622)	at
com.aws.greengrass.shadowmanager.lib.org.h2.message.DbException.getJdbcSQLException(DbException.java:429)	at
com.aws.greengrass.shadowmanager.lib.org.h2.message.DbException.get(DbException.java:194)	at
com.aws.greengrass.shadowmanager.lib.org.h2.engine.Session.getTransaction(Session.java:1792)	at
com.aws.greengrass.shadowmanager.lib.org.h2.engine.Session.getStatementSavepoint(Session.java:1804)	at
com.aws.greengrass.shadowmanager.lib.org.h2.engine.Session.setSavepoint(Session.java:915)	at
com.aws.greengrass.shadowmanager.lib.org.h2.command.Command.executeUpdate(Command.java:244)	at
com.aws.greengrass.shadowmanager.lib.org.h2.jdbc.JdbcConnection.rollbackInternal(JdbcConnection.java:1530)	at
com.aws.greengrass.shadowmanager.lib.org.h2.jdbc.JdbcConnection.rollback(JdbcConnection.java:561)	at
com.aws.greengrass.shadowmanager.lib.org.h2.jdbcx.JdbcXAConnection.getConnection(JdbcXAConnection.java:106)	at
com.aws.greengrass.shadowmanager.lib.org.h2.jdbcx.JdbcConnectionPool.getConnectionNow(JdbcConnectionPool.java:236)	at
com.aws.greengrass.shadowmanager.lib.org.h2.jdbcx.JdbcConnectionPool.getConnection(JdbcConnectionPool.java:199)	at
com.aws.greengrass.shadowmanager.ShadowManagerDAOImpl.getShadowThing(ShadowManagerDAOImpl.java:62)	... 7 more
Caused by: java.lang.IllegalStateException: Writing to nio:/greengrass/v2/work/aws.greengrass.ShadowManager/shadow.mv.db failed; length 4096 at 131072 [1.4.200/2]	at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:950)	at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.DataUtils.writeFully(DataUtils.java:479)	at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.FileStore.writeFully(FileStore.java:113)	at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.MVStore.write(MVStore.java:1111)	at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.MVStore.moveChunk(MVStore.java:1935)	at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.MVStore.compactMoveChunks(MVStore.java:1839)	at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.MVStore.compactMoveChunks(MVStore.java:1772)	at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.MVStore.doMaintenance(MVStore.java:2848)	at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.MVStore.writeInBackground(MVStore.java:2788)	at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.MVStore$BackgroundWriterThread.run(MVStore.java:3290)
Caused by: java.io.IOException: No space left on device	at
java.base/sun.nio.ch.FileDispatcherImpl.pwrite0(Native Method)	at
java.base/sun.nio.ch.FileDispatcherImpl.pwrite(FileDispatcherImpl.java:68)	at
java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:130)	at
java.base/sun.nio.ch.IOUtil.write(IOUtil.java:97)	at
java.base/sun.nio.ch.IOUtil.write(IOUtil.java:67)	at
java.base/sun.nio.ch.FileChannelImpl.writeInternal(FileChannelImpl.java:878)	at
java.base/sun.nio.ch.FileChannelImpl.write(FileChannelImpl.java:864)	at
com.aws.greengrass.shadowmanager.lib.org.h2.store.fs.FileNio.write(FilePathNio.java:79)	at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.DataUtils.writeFully(DataUtils.java:475)	... 8 more

2023-09-11T08:46:33.971Z [ERROR] (AwsEventLoop 1) com.aws.greengrass.shadowmanager.ipc.UpdateThingShadowRequestHandler: handle-update-thing-shadow. Could not process UpdateThingShadow Request due to internal service error. {thing name=XX, shadow name=StreamInfo_9}com.aws.greengrass.shadowmanager.exception.ShadowManagerDataException: java.util.concurrent.ExecutionException: com.aws.greengrass.shadowmanager.exception.ShadowManagerDataException: com.aws.greengrass.shadowmanager.lib.org.h2.jdbc.JdbcSQLNonTransientConnectionException: (Message 90020 not found) [90020-200]        at
com.aws.greengrass.shadowmanager.ShadowManagerDAOImpl.executeWriteOperation(ShadowManagerDAOImpl.java:389)        at
com.aws.greengrass.shadowmanager.ShadowManagerDAOImpl.updateShadowThing(ShadowManagerDAOImpl.java:137)        at
com.aws.greengrass.shadowmanager.ipc.UpdateThingShadowRequestHandler.lambda$handleRequest$2(UpdateThingShadowRequestHandler.java:215)        at
com.aws.greengrass.ipc.common.ExceptionUtil.translateExceptions(ExceptionUtil.java:33)        at
com.aws.greengrass.shadowmanager.ipc.UpdateThingShadowRequestHandler.handleRequest(UpdateThingShadowRequestHandler.java:94)        at
com.aws.greengrass.shadowmanager.ipc.UpdateThingShadowIPCHandler.handleRequest(UpdateThingShadowIPCHandler.java:83)        at
com.aws.greengrass.shadowmanager.ipc.UpdateThingShadowIPCHandler.handleRequest(UpdateThingShadowIPCHandler.java:29)        at
software.amazon.awssdk.eventstreamrpc.OperationContinuationHandler.onContinuationMessage(OperationContinuationHandler.java:291)        at
software.amazon.awssdk.crt.eventstream.ServerConnectionContinuationHandler.onContinuationMessageShim(ServerConnectionContinuationHandler.java:53)
Caused by: java.util.concurrent.ExecutionException: com.aws.greengrass.shadowmanager.exception.ShadowManagerDataException: com.aws.greengrass.shadowmanager.lib.org.h2.jdbc.JdbcSQLNonTransientConnectionException: (Message 90020 not found) [90020-200]        at
java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)        at
java.base/java.util.concurrent.FutureTask.get(FutureTask.java:205)        at
com.aws.greengrass.shadowmanager.ShadowManagerDAOImpl.executeWriteOperation(ShadowManagerDAOImpl.java:383)        ... 8 more
Caused by: com.aws.greengrass.shadowmanager.exception.ShadowManagerDataException: com.aws.greengrass.shadowmanager.lib.org.h2.jdbc.JdbcSQLNonTransientConnectionException: (Message 90020 not found) [90020-200]        at
com.aws.greengrass.shadowmanager.ShadowManagerDAOImpl.execute(ShadowManagerDAOImpl.java:376)        at
com.aws.greengrass.shadowmanager.ShadowManagerDAOImpl.lambda$executeWriteOperation$10(ShadowManagerDAOImpl.java:383)        at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)        at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)        at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)        at
java.base/java.lang.Thread.run(Thread.java:833)
Caused by: com.aws.greengrass.shadowmanager.lib.org.h2.jdbc.JdbcSQLNonTransientConnectionException: (Message 90020 not found) [90020-200]        at
com.aws.greengrass.shadowmanager.lib.org.h2.message.DbException.getJdbcSQLException(DbException.java:622)        at
com.aws.greengrass.shadowmanager.lib.org.h2.message.DbException.getJdbcSQLException(DbException.java:429)        at
com.aws.greengrass.shadowmanager.lib.org.h2.message.DbException.get(DbException.java:194)        at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:206)        at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:182)        at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:103)        at
com.aws.greengrass.shadowmanager.lib.org.h2.engine.Database.getPageStore(Database.java:2659)        at
com.aws.greengrass.shadowmanager.lib.org.h2.engine.Database.open(Database.java:675)        at
com.aws.greengrass.shadowmanager.lib.org.h2.engine.Database.openDatabase(Database.java:307)        at
com.aws.greengrass.shadowmanager.lib.org.h2.engine.Database.<init>(Database.java:301)        at
com.aws.greengrass.shadowmanager.lib.org.h2.engine.Engine.openSession(Engine.java:74)        at
com.aws.greengrass.shadowmanager.lib.org.h2.engine.Engine.openSession(Engine.java:192)        at
com.aws.greengrass.shadowmanager.lib.org.h2.engine.Engine.createSessionAndValidate(Engine.java:171)        at
com.aws.greengrass.shadowmanager.lib.org.h2.engine.Engine.createSession(Engine.java:166)        at
com.aws.greengrass.shadowmanager.lib.org.h2.engine.Engine.createSession(Engine.java:29)        at
com.aws.greengrass.shadowmanager.lib.org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:340)        at
com.aws.greengrass.shadowmanager.lib.org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:173)        at
com.aws.greengrass.shadowmanager.lib.org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:152)        at
com.aws.greengrass.shadowmanager.lib.org.h2.Driver.connect(Driver.java:69)        at
com.aws.greengrass.shadowmanager.lib.org.h2.jdbcx.JdbcDataSource.getJdbcConnection(JdbcDataSource.java:189)        at
com.aws.greengrass.shadowmanager.lib.org.h2.jdbcx.JdbcDataSource.getXAConnection(JdbcDataSource.java:352)        at
com.aws.greengrass.shadowmanager.lib.org.h2.jdbcx.JdbcDataSource.getPooledConnection(JdbcDataSource.java:384)        at
com.aws.greengrass.shadowmanager.lib.org.h2.jdbcx.JdbcConnectionPool.getConnectionNow(JdbcConnectionPool.java:234)        at
com.aws.greengrass.shadowmanager.lib.org.h2.jdbcx.JdbcConnectionPool.getConnection(JdbcConnectionPool.java:199)        at
com.aws.greengrass.shadowmanager.ShadowManagerDAOImpl.execute(ShadowManagerDAOImpl.java:371)        ... 5 more
Caused by: java.lang.IllegalStateException: The file is locked: nio:/greengrass/v2/work/aws.greengrass.ShadowManager/shadow.mv.db [1.4.200/7]        at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:950)        at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.FileStore.open(FileStore.java:166)        at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.MVStore.<init>(MVStore.java:381)        at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.MVStore$Builder.open(MVStore.java:3579)        at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:170)        ... 25 more
Caused by: java.nio.channels.OverlappingFileLockException        at
java.base/sun.nio.ch.FileLockTable.checkList(FileLockTable.java:229)        at
java.base/sun.nio.ch.FileLockTable.add(FileLockTable.java:123)        at
java.base/sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1321)        at
com.aws.greengrass.shadowmanager.lib.org.h2.store.fs.FileNio.tryLock(FilePathNio.java:121)        at
java.base/java.nio.channels.FileChannel.tryLock(FileChannel.java:1191)        at
com.aws.greengrass.shadowmanager.lib.org.h2.mvstore.FileStore.open(FileStore.java:163)        ... 28 more

It seems that it is also related to new deployments when new component artifacts are downloaded:
2023-09-08T10:03:34.728Z [ERROR] (pool-2-thread-10) com.aws.greengrass.componentmanager.ComponentManager: Failed to prepare package aws.greengrass.Nucleus-v2.11.2. {}com.aws.greengrass.componentmanager.exceptions.PackageDownloadException: Failed to download artifact name: 'greengrass:a0vWXgWTiRMrB5_oPpp5W163Zz1u1cP_2P9vcBuuU0Y=/aws.greengrass.nucleus.zip' for component aws.greengrass.Nucleus-2.11.2, reason: Error writing artifact	at
com.aws.greengrass.componentmanager.builtins.ArtifactDownloader.download(ArtifactDownloader.java:181)	at
com.aws.greengrass.componentmanager.builtins.GreengrassRepositoryDownloader.lambda$download$1(GreengrassRepositoryDownloader.java:160)	at
com.aws.greengrass.util.RetryUtils.runWithRetry(RetryUtils.java:50)	at
com.aws.greengrass.componentmanager.builtins.GreengrassRepositoryDownloader.download(GreengrassRepositoryDownloader.java:145)	at
com.aws.greengrass.componentmanager.builtins.ArtifactDownloader.lambda$download$0(ArtifactDownloader.java:134)	at
com.aws.greengrass.util.RetryUtils.runWithRetry(RetryUtils.java:50)	at
com.aws.greengrass.componentmanager.builtins.ArtifactDownloader.download(ArtifactDownloader.java:132)	at
com.aws.greengrass.componentmanager.ComponentManager.prepareArtifacts(ComponentManager.java:453)	at
com.aws.greengrass.componentmanager.ComponentManager.preparePackage(ComponentManager.java:399)	at
com.aws.greengrass.componentmanager.ComponentManager.lambda$preparePackages$1(ComponentManager.java:360)	at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)	at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)	at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)	at
java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.nio.channels.ClosedByInterruptException	at
java.base/java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:199)	at
java.base/sun.nio.ch.FileChannelImpl.endBlocking(FileChannelImpl.java:171)	at
java.base/sun.nio.ch.FileChannelImpl.write(FileChannelImpl.java:293)	at
java.base/java.nio.channels.Channels.writeFullyImpl(Channels.java:74)	at
java.base/java.nio.channels.Channels.writeFully(Channels.java:96)	at
java.base/java.nio.channels.Channels$1.write(Channels.java:171)	at
com.aws.greengrass.componentmanager.builtins.ArtifactDownloader.download(ArtifactDownloader.java:179)	... 13 more

Everything seems to be running fine after docker container recreation. I understand this issue is probably not a bug, but I'd like to know what is the correct recovery mechanism in such case. I understand we should do as much as possible to secure that the device does not run out of disk space, but it can happen and I'd like to be prepared for it.
Questions:

What is the correct error recovery mechanism in such case?
Does the component recover itself when the disk space is freed?
Would deleting the h2 database file from other component help?
Is the component in this state operational? Shouldn't it change its status to broken?

Thank you very much
Tomas

Hi,
If there's no space on the disk, shadow manager will fail to update the DB. From the logs you shared, it's unclear how shadow manager got into OverlappingFileLockException state from  no space left IOException as the logs are missing.
If the shadow manager is in the OverlappingFileLockException state, it cannot recover itself unless Greengrass is restarted. So, shadow manager needs a fix to prevent itself from entering this state.
Although, deleting the shadow manager DB file will clear up some space, it also removes the lock shadow state. If you still want to delete the db file, you should stop Greengrass, delete the file and then restart the Greengrass. This will allow the shadow manager to recreate the DB.

No response for 2 months so I'm going to close this issue. Please reopen if necessary.


From private repo

@huypub : Thanks for your contribution! The author(s) have been notified to review your proposed change. @bryanla


Add contributing doc

Fixes #771

I think it's a good idea to get this in ASAP, then make modifications later.
We should have a link to this doc from the main README and/or FAQ, though.

Original PR was #803

Couple of minor comments still open that aren't necessary, LGTM.

Still need a link from the README and/or FAQ

Added link from README.


Breakpoint set but not yet bound

Issue Type: Bug
Version of VS code is 1.22. When I am trying to debug the code, debug points turns into gray and debugging is not possible at the point. When hovering on gray debug point it shows tooltip error as "Brakpoint is not valid, Breakpoint set but not yet bound"
VS Code version: Code 1.22.1 (950b8b0d37a9b7061b6f0d291837ccc4015f5ecd, 2018-04-06T02:26:57.615Z)
OS version: Windows_NT x64 10.0.15063

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz (4 x 2594)

Memory (System)
7.89GB (2.62GB free)

Process Argv
C:\Program Files\Microsoft VS Code\Code.exe

Screen Reader
no

VM
0%

Extensions (5)

Extension
Author (truncated)
Version

ng-template
Ang
0.1.9

gitlens
eam
8.2.1

tslint
eg2
1.0.28

Angular2
joh
2.16.1

debugger-for-chrome
msj
4.3.0

What debugger are you using?


Servers watcher is not visible on Octane (Swoole)

Pulse Version
v1.2.6
Laravel Version
v11.30.0
PHP Version
8.3.13
Livewire Version
v3.5.12
Database Driver & Version
mysql  Ver 8.0.40-0ubuntu<IP_ADDRESS> for Linux on x86_64 ((Ubuntu))
Description
On Laravel Octane (v2.5.9) running with Swoole (php-swoole v5.1.4), the Servers card on top of the default pulse page, which shows  the CPU and RAM usage, is not showing up.
Steps To Reproduce
Install php-swoole extension, laravel octane, and set OCTANE_SERVER=swoole in .env file.
Run laravel using php artisan octane:start.
Then go to http://<IP_ADDRESS>:8000/pulse
The same issue happens for an actual production server running octane through nginx.

Hi @hasancanboga,
I can't think of any reason why Octane would have an impact on the servers card. The main reason that servers would not appear is when there is no server data in the Pulse database tables.
Can you please confirm that the pulse:check command is running?
https://laravel.com/docs/11.x/pulse#capturing-entries

Hi @hasancanboga,
I can't think of any reason why Octane would have an impact on the servers card. The main reason that servers would not appear is when there is no server data in the Pulse database tables.
Can you please confirm that the pulse:check command is running?
https://laravel.com/docs/11.x/pulse#capturing-entries

Oh sorry I didn't realize I was supposed to have a supervisor process running for the pulse:check command in order to make servers watcher work. Did not check that part on docs, my bad. Thanks for the info, it works now! @jessarcher


GlobalElements needs to be developed in SDK software.

CHIP-tool SDK software has to implement the the following mandatory global elements, mentioned in the spec section 7.14.

Cluster Revision.
FeatureMap
AttributeList
EventList
ClientGeneratedCommandList
ServerGeneratedCommandList.
FabricIndex.

1, 2, 3, 5, 6 are implemented (though no all clusters that should declare 2).
7 was a recent spec change.  I filed https://github.com/project-chip/zap/issues/411 on some infrastructure we might need for it.
4 is tracked in https://github.com/project-chip/connectedhomeip/issues/15011


added orthogonal initializer

Added an orthogonal initialiser like the one in TensorFlow python.
Is there a swift test similar to assert_allclose to use for equality with tolerance for small differences?

Is there a swift test similar to assert_allclose to use for equality with tolerance for small differences?

Yes, check out the assertEqual functions defined in Tests/TensorFlowTests/Helpers.swift.

I have added the methods qr() and diagPart() in the linear algebra section of math.swift.  I can add a test for each of these also.  I am agnostic about whether having these methods is better than just calling their Raw. versions.
I added documentation and I think I have addressed all the comments. I also changed the test to use assertEqual.

I have made the requested changes.

Updated with the latest documentation fixes.


Only import used function registry values.

Keep track of what values are used from the function registry. Only add
the import statements for values that are used.

@kcomer Can you take a look at this change?

LGTM


OSError: Unable to open file 'Permission denied' when using load_weights (despite having the correct path)

Please make sure that this is a Bug or a Feature Request and provide all applicable information asked by the template.
If your issue is an implementation question, please ask your question on StackOverflow or on the Keras Slack channel instead of opening a GitHub issue.
System information
Have I written custom code (as opposed to using example directory): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Windows 10
TensorFlow backend (yes / no): Yes
TensorFlow version: 2.1.0
Keras version: 2.2.4-tf
Python version: 3.7.6
CUDA/cuDNN version: 10.1/7.6.5
GPU model and memory: Nvidia Quadro M2000 4GB memory
You can obtain the TensorFlow version with:
python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"
You can obtain the Keras version with:
python -c 'import keras as k; print(k.version)'
Describe the current behavior
When using load_weights() I get an error: OSError: Unable to open file (unable to open file: name = 'C:\Git repositories\Avalon-Inspection\checkpoints\segment_loss_6000_epochs_1_batches_gpu2020-02-13--1145 - best v1', errno = 13, error message = 'Permission denied', flags = 0, o_flags = 0)
I have explored a few other issues and I can say that my path is correct, and that I'm using the SavedModel format from the saveCheckpoint callback i,e, saved_model.pb.
Describe the expected behavior
The weights will be loaded into the model.
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
seed(101)
from tensorflow.compat.v1 import set_random_seed
set_random_seed(102)

import tensorflow as tf
import tensorflow.keras as keras
from tensorflow.keras.layers import Input, Dense, Conv2D, MaxPooling2D, Lambda #PReLU
from tensorflow.keras.models import Model
import numpy as np
from tensorflow.keras.preprocessing.image import ImageDataGenerator
import os
import tensorflow.keras.backend as K
import numpy as np
from matplotlib import pyplot as plt
import cv2

def jaccard_distance(y_true, y_pred, smooth=0.1):
    intersection = K.sum(K.abs(y_true * y_pred))
    sum_ = K.sum(K.abs(y_true) + K.abs(y_pred))
    jac = (intersection + smooth) / (sum_ - intersection + smooth)
    return (1 - jac) * smooth

def jaccard_index(y_true, y_pred):
    intersection = K.sum(K.abs(y_true * y_pred))
    sum_ = K.sum(K.abs(y_true) + K.abs(y_pred))
    jac = (intersection) / (sum_ - intersection)
    return (jac)

custom_objects_1 = {'jaccard_distance': jaccard_distance, 'jaccard_index':jaccard_index}

IMAGE_HEIGHT = 128
IMAGE_WIDTH = 128
NUMBER_OF_COLOR_CHANNELS = 1

# build the full segmentation network
# block 1
main_input = Input(shape=(IMAGE_HEIGHT, IMAGE_WIDTH, NUMBER_OF_COLOR_CHANNELS), dtype="float32", name="main_input")
conv_2D_1 = Conv2D(filters=32, kernel_size=(25,25), strides=(1,1), padding="same", activation="relu", name="conv_2D_1", trainable=False)(main_input)
conv_2D_2 = Conv2D(filters=32, kernel_size=(25,25), strides=(1,1), padding="same", activation="relu", name="conv_2D_2", trainable=False)(conv_2D_1)
max_pooling_2D_3 = MaxPooling2D(name="max_pooling_2D_3", trainable=False)(conv_2D_2)
# block 2
conv_2D_4 = Conv2D(filters=64, kernel_size=(13,13), strides=(1,1), padding="same", activation="relu", name="conv_2D_4", trainable=False)(max_pooling_2D_3)
conv_2D_5 = Conv2D(filters=64, kernel_size=(13,13), strides=(1,1), padding="same", activation="relu", name="conv_2D_5", trainable=False)(conv_2D_4)
conv_2D_6 = Conv2D(filters=64, kernel_size=(13,13), strides=(1,1), padding="same", activation="relu", name="conv_2D_6", trainable=False)(conv_2D_5)
max_pooling_2D_7 = MaxPooling2D(name="max_pooling_2D_7", trainable=False)(conv_2D_6)
# block 3
conv_2D_8 = Conv2D(filters=64, kernel_size=(7,7), strides=(1,1), padding="same", activation="relu", name="conv_2D_8", trainable=False)(max_pooling_2D_7)
conv_2D_9 = Conv2D(filters=64, kernel_size=(7,7), strides=(1,1), padding="same", activation="relu", name="conv_2D_9", trainable=False)(conv_2D_8)
conv_2D_10 = Conv2D(filters=64, kernel_size=(7,7), strides=(1,1), padding="same", activation="relu", name="conv_2D_10", trainable=False)(conv_2D_9)
conv_2D_11 = Conv2D(filters=64, kernel_size=(7,7), strides=(1,1), padding="same", activation="relu", name="conv_2D_11", trainable=False)(conv_2D_10)
max_pooling_2D_12 = MaxPooling2D(name="max_pooling_2D_12", trainable=False)(conv_2D_11)
# final steps
conv_2D_13 = Conv2D(filters=1024, kernel_size=(5,5), strides=(1,1), padding="same", activation="relu", name="conv_2D_13", trainable=False)(max_pooling_2D_12)
segmentation_mask = Conv2D(filters=1, kernel_size=(1,1), strides=(1,1), padding="same", activation="sigmoid", name="segmentation_mask", trainable=False)(conv_2D_13)
frozen_segmentation_model = Model(inputs=[main_input], outputs=[segmentation_mask])

frozen_segmentation_model.compile(optimizer="sgd", loss="binary_crossentropy", metrics=[jaccard_distance, jaccard_index])

frozen_segmentation_model.load_weights("C:\\Git repositories\\Avalon-Inspection\\checkpoints\\segment_loss_6000_epochs_1_batches_gpu2020-02-13--1145 - best v1")
print(segmentation_model.summary())

Other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.
 in
----> 1 frozen_segmentation_model.load_weights("C:\\Git repositories\\Avalon-Inspection\\checkpoints\\segment_loss_6000_epochs_1_batches_gpu2020-02-13--1145 - best v1")
      2 print(segmentation_model.summary())

~\AppData\Local\Continuum\anaconda3\envs\tf-gpu\lib\site-packages\tensorflow_core\python\keras\engine\training.py in load_weights(self, filepath, by_name, skip_mismatch)
    232         raise ValueError('Load weights is not yet supported with TPUStrategy '
    233                          'with steps_per_run greater than 1.')
--> 234     return super(Model, self).load_weights(filepath, by_name, skip_mismatch)
    235
    236   @trackable.no_automatic_dependency_tracking

~\AppData\Local\Continuum\anaconda3\envs\tf-gpu\lib\site-packages\tensorflow_core\python\keras\engine\network.py in load_weights(self, filepath, by_name, skip_mismatch)
   1213           'first, then load the weights.')
   1214     self._assert_weights_created()
-> 1215     with h5py.File(filepath, 'r') as f:
   1216       if 'layer_names' not in f.attrs and 'model_weights' in f:
   1217         f = f['model_weights']

~\AppData\Local\Continuum\anaconda3\envs\tf-gpu\lib\site-packages\h5py\_hl\files.py in __init__(self, name, mode, driver, libver, userblock_size, swmr, rdcc_nslots, rdcc_nbytes, rdcc_w0, track_order, **kwds)
    406                 fid = make_fid(name, mode, userblock_size,
    407                                fapl, fcpl=make_fcpl(track_order=track_order),
--> 408                                swmr=swmr)
    409
    410             if isinstance(libver, tuple):

~\AppData\Local\Continuum\anaconda3\envs\tf-gpu\lib\site-packages\h5py\_hl\files.py in make_fid(name, mode, userblock_size, fapl, fcpl, swmr)
    171         if swmr and swmr_support:
    172             flags |= h5f.ACC_SWMR_READ
--> 173         fid = h5f.open(name, flags, fapl=fapl)
    174     elif mode == 'r+':
    175         fid = h5f.open(name, h5f.ACC_RDWR, fapl=fapl)

h5py\_objects.pyx in h5py._objects.with_phil.wrapper()

h5py\_objects.pyx in h5py._objects.with_phil.wrapper()

h5py\h5f.pyx in h5py.h5f.open()

OSError: Unable to open file (unable to open file: name = 'C:\Git repositories\Avalon-Inspection\checkpoints\segment_loss_6000_epochs_1_batches_gpu2020-02-13--1145 - best v1', errno = 13, error message = 'Permission denied', flags = 0, o_flags = 0)```

try to include the .hdf5 extension when saving your model weights. for more info checkout
https://www.tensorflow.org/tutorials/keras/save_and_load

@MohmmadMansuri  Thanks for the reply. I'll give it a try. Does this mean that the SavedModel format is known to "misbehave" sometimes?

@rafwaf
Moving this issue to closed status as there has been no activity, in case you still face the error please create a new issue.


CSS

CSS
User story
As a boot camp student
I want the prework notes to be structured on a webpage
So that I can easily find and read the information
Acceptance criteria
GIVEN a Prework Study Guide website
WHEN I view the study guide
THEN I see a dark blue header and footer, and four boxes with a shadow

The header and footer have a dark blue color. All blocks in boxes with a shadow.


SDK - Add support for multiple datasets

Includes:

Registering additional datasets other than "training"/"scoring".
Passing datasets definitions as separate training parameter

I think this is done :)


fix(helm): database name as an environment variable

close https://github.com/keephq/helm-charts/issues/77

hey @nlamirault, thanks for your contribution!
can I ask you to bump the version on Chart.yaml?

i've got this error now:
kubectl -n alerting logs keep-backend-7fbb7f8c44-mg72t
Defaulted container "keep" out of: keep, wait-for-database (init)
+ dirname /venv/lib/python3.11/site-packages/keep/entrypoint.sh
+ SCRIPT_DIR=/venv/lib/python3.11/site-packages/keep
+ exec gunicorn keep.api.api:get_app --bind <IP_ADDRESS>:8080 --workers 4 -k uvicorn.workers.UvicornWorker -c /venv/lib/python3.11/site-packages/keep/api/config.py --preload
+ python /venv/lib/python3.11/site-packages/keep/server_jobs_bg.py
{"asctime": "2024-12-11 06:07:33,772", "message": "Starting background server jobs.", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg"}
{"asctime": "2024-12-11 06:07:33,772", "message": "Checking if server is up at http://localhost:8080...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg"}
{"asctime": "2024-12-11 06:07:33,774", "message": "API is not up yet. Waiting...", "levelname": "INFO", "name": "__main__", "filename": "server_jobs_bg.py", "otelTraceID": null, "otelSpanID": null, "otelServiceName": null, "threadName": "MainThread", "process": 8, "module": "server_jobs_bg"}
{"asctime": "2024-12-11 06:07:34,855", "message": "Creating a connection pool with size 5", "levelname": "INFO", "name": "keep.api.core.db_utils", "filename": "db_utils.py", "otelTraceID": null, "otelSpanID": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "db_utils"}
[2024-12-11 06:07:34 +0000] [1] [INFO] Starting gunicorn 22.0.0
{"asctime": "2024-12-11 06:07:34,874", "message": "Keep server starting", "levelname": "INFO", "name": "__config__", "filename": "config.py", "otelTraceID": null, "otelSpanID": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "config"}
{"asctime": "2024-12-11 06:07:34,875", "message": "Running migrations...", "levelname": "INFO", "name": "keep.api.core.db_on_start", "filename": "db_on_start.py", "otelTraceID": null, "otelSpanID": null, "otelServiceName": null, "threadName": "MainThread", "process": 1, "module": "db_on_start"}
Traceback (most recent call last):
Traceback (most recent call last):
  File "/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 3361, in _wrap_pool_connect
    return fn()
           ^^^^
  File "/venv/lib/python3.11/site-packages/sqlalchemy/pool/base.py", line 320, in connect
    return _ConnectionFairy._checkout(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/sqlalchemy/pool/base.py", line 884, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/sqlalchemy/pool/base.py", line 486, in checkout
    rec = pool._do_get()
          ^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
    with util.safe_reraise():
  File "/venv/lib/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
    compat.raise_(
  File "/venv/lib/python3.11/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
    raise exception
  File "/venv/lib/python3.11/site-packages/sqlalchemy/pool/impl.py", line 143, in _do_get
    return self._create_connection()
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/sqlalchemy/pool/base.py", line 266, in _create_connection
    return _ConnectionRecord(self)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/sqlalchemy/pool/base.py", line 381, in __init__
    self.__connect()
  File "/venv/lib/python3.11/site-packages/sqlalchemy/pool/base.py", line 677, in __connect
    with util.safe_reraise():
  File "/venv/lib/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
    compat.raise_(
  File "/venv/lib/python3.11/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
    raise exception
  File "/venv/lib/python3.11/site-packages/sqlalchemy/pool/base.py", line 673, in __connect
    self.dbapi_connection = connection = pool._invoke_creator(self)
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/sqlalchemy/engine/create.py", line 578, in connect
    return dialect.connect(*cargs, **cparams)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 598, in connect
    return self.dbapi.connect(*cargs, **cparams)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/pymysql/connections.py", line 361, in __init__
    self.connect()
  File "/venv/lib/python3.11/site-packages/pymysql/connections.py", line 669, in connect
    self._request_authentication()
  File "/venv/lib/python3.11/site-packages/pymysql/connections.py", line 957, in _request_authentication
    auth_packet = self._read_packet()
                  ^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/pymysql/connections.py", line 775, in _read_packet
    packet.raise_for_error()
  File "/venv/lib/python3.11/site-packages/pymysql/protocol.py", line 219, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/venv/lib/python3.11/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.OperationalError: (1524, "Plugin 'mysql_native_password' is not loaded")

using this environment variable in the deployment:
            - name: DATABASE_CONNECTION_STRING
              value: 'mysql+pymysql://keep:xxxxx@moco-keep-db-primary:3306/keep'

i change my Helm settings and use an external Postgres database, managed by the CloudNativePG Operator.
It works now.
but I made some changes in the deployment of the backend (and not use the backend manifest generated by the Helm chart)
- name: DATABASE_CONNECTION_STRING
   value: "postgresql://keep:xxxxxx@keep-rw:5432/keep"

and also:
initContainers:
        - command:
            - sh
            - '-c'
            - until nc -z keep-rw 5432; do sleep 1; done;

@nlamirault

pymysql.err.OperationalError: (1524, "Plugin 'mysql_native_password' is not loaded")

this is because your MySQL server doesn't support password authentication - you should enable it for Keep to authenticate with user/password

i change my Helm settings and use an external Postgres database, managed by the CloudNativePG Operator. It works now. but I made some changes in the deployment of the backend (and not use the backend manifest generated by the Helm chart)
- name: DATABASE_CONNECTION_STRING
   value: "postgresql://keep:xxxxxx@keep-rw:5432/keep"

and also:
initContainers:
        - command:
            - sh
            - '-c'
            - until nc -z keep-rw 5432; do sleep 1; done;

cool. would be happy to merge your changes to the helm repo if you want


footer is displayed above keyboard when input box gets focus on Android

I have gone through these following points

[x] Check latest documentation: https://docs.nativebase.io/
[x] Check for existing open/closed issues for a possible duplicate before creating a new issue: https://github.com/GeekyAnts/NativeBase/issues
[x] Use the latest NativeBase release: https://github.com/GeekyAnts/NativeBase/releases
[x] Check examples from NativeBase KitchenSink https://github.com/GeekyAnts/NativeBase-KitchenSink
[] For discussion purpose make use of NativeBase Slack: http://slack.nativebase.io/
[] For queries related to theme, check Theme Variables from Docs and live NativeBase Theme Editor http://nativebase.io/customizer/

Issue Description

node, npm, react-native, react and native-base version, expo version if used, xcode version
node 12.13.1
npm 6.12.1
react-native 0.61.4
react 16.9.0
native-base 2.13.12
expo 36.0.2
Expected behaviour
When a form input field gets focus then keyboard pops up, covering footer.
Actual behaviour
On Android, when a form input field gets focus the keyboard pops up but the footer is displayed above keyboard.  This behaviour does not occur on iOS.
Steps to reproduce
Here is a picture of what the sample code below renders on iOS and Android -
https://imgur.com/a/iSb40gf
Here is the code to reproduce this issue:
<template>
  <root>
    <nb-container>
      <nb-header />

      <nb-content>

        <nb-form>
          <nb-item regular>
            <nb-input placeholder="Regular Textbox" />
          </nb-item>
        </nb-form>

      </nb-content>

      <nb-footer>
        <nb-footer-tab>
          <nb-button>
            <nb-text>Apps</nb-text>
          </nb-button>
          <nb-button>
            <nb-text>Camera</nb-text>
          </nb-button>
          <nb-button :active="true">
            <nb-text>Navigate</nb-text>
          </nb-button>
          <nb-button>
            <nb-text>Contact</nb-text>
          </nb-button>
        </nb-footer-tab>
      </nb-footer>

    </nb-container>
  </root>
</template>

Is the bug present in both iOS and Android or in any one of them?
This is only happening in Android.  The device shown in the photo is a Samsung Galaxy J3 Orbit.
Any other additional info which would help us debug the issue quicker.
###Important
If you want your issue to be looked at quicker, attach a snack reproducible with your issue. Makes it easier for us!

@knot22 you could try this solution:
https://github.com/GeekyAnts/NativeBase/issues/787#issuecomment-299876920
If that doesn't work, you could use keyboard listeners as described here:
https://github.com/GeekyAnts/NativeBase/issues/787#issuecomment-298158992
Just use mounted in place of componentWillMount and beforeDestroy in place of componentWillUnmount

I decided to use the workaround approach that @yeknava posted which @RishabhKarnad pointed out above.  This particular project uses Vue Native so the code that was added looks like this -
<script>
import React from "react";
import { Keyboard, Platform } from "react-native";

export default {
  data() {
    return {
      showFooter: true
    }
  },
  mounted() {
    if (Platform.OS === 'android') {
      this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', () => this.showFooter = false);
      this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', () => this.showFooter = true);
    }
  },
  beforeDestroy() {
    if (Platform.OS === 'android') {
      this.keyboardDidShowListener.remove();
      this.keyboardDidHideListener.remove();
    }
  }
}
</script>

Then a slight modification was necessary in the <template> to the footer component which was <Footer v-if="showFooter" /> .  I did not test this on the original code snippet provided for this issue but expect that <nb-footer v-if="showFooter"> would work once the logic in <script> was added.
I chose to use an arrow function for the callback when adding the listener to keep the code concise - hopefully there are no pitfalls with going that route.  The Vue Native equivalent to the code that @yeknava used, which also works, is:
  methods: {
    _keyboardDidShow() {
      this.showFooter = false;
    },
    _keyboardDidHide() {
      this.showFooter = true;
    }
  },
  mounted() {
    if (Platform.OS === 'android') {
		this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);
		this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide);
    }
  }

The workaround is not quite perfect because there is a delay in hiding the footer when the keyboard is activated.  This delay is visible to the human eye.  The reason for applying it only to Android is so iOS does not have the delay of the footer reappearing when the keyboard is closed.


Error 1556 when creating cRIO item in Configuration Editor

Using LV 2016 and DCAF Core <IP_ADDRESS> (and dependent) package.
-) Create project from a Basic Execution Template
-) Open DCAF configurator editor
-) Add new cRIO item
-) when selecting target type (e.g. Linux ARM x64), you get the error below

If I try to ignore it, I can work again on the editor, but if I try to add a target item again, I still get error 1556
If I close the DCAF editor and open it again, error still shows up

One more things: using an existing configuration file (e.g. the temperature controller one) works without issues.

Another update: it seems the error shows up if you create the cRIO item under Systems (I haven't tried with other items types like cDAQ, etc) and do not add an engine under it. If you add a standard engine for example,
then you can go back on cRIO item and modify any field without errors.

This is a duplicate of this issue which has already been fixed.
https://github.com/LabVIEW-DCAF/TagEditorCore/issues/238


Unknown "tailwind_merge" filter

Hi!
With #16, I think we just need a little extra tweak :). If I install just this bundle and do nothing else, I'll get:

That's because, I believe, even though we install https://github.com/tales-from-a-dev/twig-tailwind-extra, we never register the service for the extension.
One nice DX idea might be: allow tales-from-a-dev/twig-tailwind-extra to be a bundle. I mean, it would still be a library that anyone can use. But you also package a tiny bundle class + extension class inside of it that registers this service. Then, Symfony users are all set. An example is Foundry - https://github.com/zenstruck/foundry - the only trick is that the bundle class should live directly in src/ so that the Flex recipe system can find it. But then you can hide 100% of the other Symfony details in some subdirectory, like src/Symfony.
WDYT?

Oh, also, we need to also register the runtime class :) - TalesFromADev\Twig\Extra\Tailwind\TailwindRuntime: null

yup something not quite right after updating here for me also.

Adding the following to my Symfony services.php is enough to get the extension loaded for today
$services->set(TailwindRuntime::class);
$services->set(TailwindExtension::class)->tag('twig.extension');

Hello @weaverryan, @PhilETaylor
I just released new versions for both flowbite-bundle and twig-tailwind-extra that should fix the problem!
Until symfony/recipes-contrib#1566 is merged, you can add this line into config/bundles.php:
// config/bundles.php

return [
    // ...
    TalesFromADev\Twig\Extra\Tailwind\Bridge\Symfony\Bundle\TalesFromADevTwigExtraTailwindBundle::class => ['all' => true],
];

Updated, added class to bundles.php, removed my services from yesterday, and your code works for me like that - thanks.

It seems to be working for me - thank you for the fast turnaround @ker0x!


Author image does not displays

What happened?
Hi There!
Firstly I would like to thank you for this awsome theme.
I am sure it is something I am missing, as I am trying to follow the setup guide, but it looks like the author.jpg does not display...

I have placed the image into the recommended location, but the blog's main page does not display it...

Inspecting the page in brave(chromium) it shows the element is there...

....but the image file has not been generated by the hugo command
Theme version
latest
Hugo version
latest
What browsers are you seeing the problem on?
Firefox, Chrome
Relevant Hugo log output
╰─ hugo ; hugo server --disableFastRender
Start building sites …
hugo v0.110.0-e32a493b7826d02763c3b79623952e625402b168+extended windows/amd64 BuildDate=2023-01-17T12:16:09Z VendorInfo=gohugoio
WARN 2023/02/04 17:57:36 found no layout file for "JSON" for kind "home": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.

                   | EN
-------------------+-----
  Pages            | 11
  Paginator pages  |  0
  Non-page files   |  0
  Static files     |  7
  Processed images |  0
  Aliases          |  2
  Sitemaps         |  1
  Cleaned          |  0

Total in 611 ms
Start building sites …
hugo v0.110.0-e32a493b7826d02763c3b79623952e625402b168+extended windows/amd64 BuildDate=2023-01-17T12:16:09Z VendorInfo=gohugoio
WARN 2023/02/04 17:57:36 found no layout file for "JSON" for kind "home": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.

                   | EN
-------------------+-----
  Pages            | 11
  Paginator pages  |  0
  Non-page files   |  0
  Static files     |  7
  Processed images |  0
  Aliases          |  2
  Sitemaps         |  1
  Cleaned          |  0

Built in 63 ms
Watching for changes in C:\Users\emilf\OneDrive\Dokumentumok\projects\devblog\{archetypes,assets,content,data,layouts,static}
Watching for config changes in C:\Users\emilf\OneDrive\Dokumentumok\projects\devblog\config\_default, C:\Users\emilf\OneDrive\Dokumentumok\projects\devblog\go.mod
Environment: "development"
Serving pages from memory
Web Server is available at //localhost:1313/ (bind address <IP_ADDRESS>)
Press Ctrl+C to stop

looks like it was just while i had it as a hugo module... not appearing when using github submodyle... closing


Fix semantic release

Summary

Checklist

[ ] ran cargo make fmt
[ ] using conventional commits to hightlight user-facing fixes and features

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

v0.35.2
GitHub release

Your semantic-release bot :package::rocket:


[Material 2]ChoiceChip flashes done icon when changing theme

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Use Material Design 2 in your Flutter app.
Create a ChipThemeData and set either selectedColor or secondarySelectedColor.
Use a ChoiceChip with the property selected: true.
Implement functionality to switch themes in the app.
Observe that when the theme is switched, a done icon appears briefly and then disappears.

Expected results
ChoiceChip do not flashes done icon when changing theme
Actual results
ChoiceChip flashes done icon when changing theme
Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  var i = 0;
  Color get primary => Colors.primaries[i];

  void _nextColor() {
    i = (i + 1) % BoxFit.values.length;
    setState(() {});
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(useMaterial3: false, chipTheme: ChipThemeData(selectedColor: primary)),
      home: Scaffold(
        body: Center(
          child: Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ChoiceChip(
                selected: false,
                label: const Text('foo'),
                onSelected: (_) {},
              ),
              ChoiceChip(
                selected: true,
                label: const Text('bar'),
                onSelected: (_) {},
              ),
            ],
          ),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: _nextColor,
          child: const Icon(Icons.next_plan),
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
https://github.com/flutter/flutter/assets/8436039/631af9ba-ceee-4f65-8749-b89cf0a47750

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[√] Flutter (Channel stable, 3.13.1, on Microsoft Windows [Version 10.0.19045.3324], locale hu-HU)
    • Flutter version 3.13.1 on channel stable at C:\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision e1e47221e8 (9 days ago), 2023-08-22 21:43:18 -0700
    • Engine revision b20183e040
    • Dart version 3.1.0
    • DevTools version 2.25.0

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at C:\Users\maRci002\AppData\Local\Android\Sdk
    • Platform android-33, build-tools 33.0.2
    • ANDROID_HOME = C:\Users\maRci002\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.7.0)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.7.34003.232
    • Windows 10 SDK version 10.0.22621.0

[√] Android Studio (version 2022.3)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19045.3324]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 116.0.5845.112
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 115.0.1901.200

[√] Network resources
    • All expected network resources are available.

• No issues found!

Reproducible using the code sample provided, only with material 2.
https://github.com/flutter/flutter/assets/88313112/66de0f35-524e-4357-a6fb-497b18d77a39

updated sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

final _useMaterial3 = ValueNotifier(false);

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  var i = 0;
  Color get primary => Colors.primaries[i];

  void _nextColor() {
    i = (i + 1) % BoxFit.values.length;
    setState(() {});
  }

  @override
  Widget build(BuildContext context) {
    return ValueListenableBuilder(
      valueListenable: _useMaterial3,
      builder: (context, value, child) {
        return MaterialApp(
          theme: ThemeData(useMaterial3: value, chipTheme: ChipThemeData(selectedColor: primary)),
          home: Scaffold(
            body: Center(
              child: Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  ChoiceChip(
                    selected: false,
                    label: const Text('foo'),
                    onSelected: (_) {},
                  ),
                  ChoiceChip(
                    selected: true,
                    label: const Text('bar'),
                    onSelected: (_) {},
                  ),
                ],
              ),
            ),
            floatingActionButton: Column(
              mainAxisAlignment: MainAxisAlignment.end,
              children: [
                FloatingActionButton(
                  onPressed: _nextColor,
                  child: const Icon(Icons.next_plan),
                ),
                const SizedBox(height: 20,),
                FloatingActionButton(
                  onPressed: () {
                    _useMaterial3.value = !_useMaterial3.value;
                  },
                  child: value ? const Icon(Icons.three_k) : const Icon(Icons.two_k),
                ),
              ],
            ),
          ),
        );
      }
    );
  }
}

flutter doctor -v
[!] Flutter (Channel stable, 3.13.2, on macOS 13.4.1 22F770820d darwin-arm64, locale en-GB)
    • Flutter version 3.13.2 on channel stable at /Users/nexus/dev/sdks/flutter
    ! Warning: `flutter` on your path resolves to /Users/nexus/dev/sdks/flutters/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutter. Consider adding /Users/nexus/dev/sdks/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/nexus/dev/sdks/flutters/bin/dart, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutter. Consider adding /Users/nexus/dev/sdks/flutter/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ff5b5b5fa6 (8 days ago), 2023-08-24 08:12:28 -0500
    • Engine revision b20183e040
    • Dart version 3.1.0
    • DevTools version 2.25.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-33, build-tools 33.0.1
    • Java binary at: /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/223.8836.35.2231.10406996/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode-14.3.0.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/223.8836.35.2231.10406996/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.2)
    • IntelliJ at /Users/nexus/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 75.1.4
    • Dart plugin version 232.8660.129

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.4)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/231.9225.16/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] IntelliJ IDEA Ultimate Edition (version 2023.2)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/232.8660.185/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.81.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.70.0

[✓] Connected device (3 available)
    • Nexus (mobile)  • 00008020-001875E83A38002E • ios            • iOS 16.6 20G75
    • macOS (desktop) • macos                     • darwin-arm64   • macOS 13.4.1 22F770820d darwin-arm64
    • Chrome (web)    • chrome                    • web-javascript • Google Chrome 116.0.5845.140

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 3.14.0-13.0.pre.69, on macOS 13.4.1 22F770820d darwin-arm64, locale en-GB)
    • Flutter version 3.14.0-13.0.pre.69 on channel master at /Users/nexus/dev/sdks/flutters
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision c141126df0 (30 minutes ago), 2023-09-01 03:45:52 -0400
    • Engine revision 09cb3d99f2
    • Dart version 3.2.0 (build 3.2.0-128.0.dev)
    • DevTools version 2.27.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-33, build-tools 33.0.1
    • Java binary at: /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/223.8836.35.2231.10406996/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode-14.3.0.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/223.8836.35.2231.10406996/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.4)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/231.9225.16/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] IntelliJ IDEA Ultimate Edition (version 2023.2)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/232.8660.185/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.81.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.70.0

[✓] Connected device (3 available)
    • Nexus (mobile)  • 00008020-001875E83A38002E • ios            • iOS 16.6 20G75
    • macOS (desktop) • macos                     • darwin-arm64   • macOS 13.4.1 22F770820d darwin-arm64
    • Chrome (web)    • chrome                    • web-javascript • Google Chrome 116.0.5845.140

[✓] Network resources
    • All expected network resources are available.

• No issues found!


[Question] Redirect after logout

Hi,
I have implemented SSO using djangosaml2. It works perfectly, except for the part where I would like to redirect the user to a specific (dynamic) page after the logout (initiated by the application).
I see the "RelayState" is used to redirect the user to a specific page after login. Is there a similar feature for logging out? As far I could see from the source code, the saml2 library sets the RelayState when doing logout and it is not possible to override it without changing the code.

Actually the logout uses the logout url defined in the general settings, is there any kind of relay for the saml2 logout?
If not we cannot proceed.
at the same time you can even create a parameter in the user session and have a redirect to the value set to this parameter if present

Yes, it uses the default logout URL (and this works) but I would like the logout URL to be user-specific.
Is the user not already logged out when post to the LogoutView is performed so I can not use user session to perform the redirect?

even if the user is not authenticated the session is available (AnonUser)


git.maronato.dev down?

Can't pull git.maronato.dev/maronato/finger via go or docker.

+1 :)

For now, as a workaround, you can use
docker pull ghcr.io/artemstepanov/go-finger:main


expanded introduction page for Storybook

This PR fleshes out Introduction.mdx to add more explanatory content and provide additional links to related resources and assets.
@ty2k looking for a steer on whether you think this is useful info/context, or if it's going too far into the weeds.

Bit of scope-creep on this PR:
30368d2 adds a new Changelog.mdx file which imports the main CHANGELOG.md file for the package.

i have been dangerously encouraged, my next PR may well be trying to import all of our docs content from gov in iframes into storybook*

this is probably a joke...


Storefront Improvements

I've made a review to the storefront and found a couple of things that can improve UX and Consistency
Adds:

[ ] "QUICK SEARCH VIEW" Add explainer text to quick search with no results - Can be found on mockups
[ ] "Search input" should work after hitting enter - right now it doesn't
[ ] Losing focus on "search input" should collapse the input
[ ] "SHOPPING CART" Change "Shopping Cart" text to "Shopping Bag" increases consistency in naming
[ ] "My Bag Drawer" Change text on button from "My Bag" to "Go to my bag" - more explanatory
[ ] Change copy on "No search results" page - copy can be found on designs

Thanks @pwgryglak!


Make RawResponses nullable in OperatoinInternal

Based on the documentation of rawResponse, rawResponse can be null from user input, and we have the use case of null rawResponse input in https://github.com/Azure/azure-sdk-for-net/pull/41088#discussion_r1522137981.
Make it nullable in this separate PR.

API change check
API changes are not detected in this pull request.

We decide to update state during rehydration to avoid empty raw response, close this PR.


Interface elements in the footer are easy to overlook

This is more of an issue on Desktop, especially with large screens and a low amount of detail in the open post.

Are you referring to the "Good match/Bad match" and "what's in your area?" buttons at the bottom of a connection/need? All other instances of footer elements seem to have been removed in the recent UI changes

The share button has been moved, but the publish button and match acceptance/rejection buttons are still in the footer.

So the idea is to move the buttons in question into the top bar? I think that's a good idea.
Since this issue has been otherwise inactive for the last month I would suggest we move this to "soon", and consider how exactly to modify the interface part of the task?

This issue seems to have been inactive for some time. Maybe we should close it and create a new issue describing the task of moving the mentioned buttons?

i second the suggestion made by @peacememories

Replaced by #2510


Add a border to other marked regions

When performing a find/replace, all additional results are highlighted with a border
Before:

After:

Published v0.5.0

This caused a bunch of problems for people, see issue #8 ... in the meantime I reverted this code and released v0.6.0.


Make HttpHeadersEncoder.encodeHeader package private to match class v…

... visibility.

@trustin Any thoughts on this PR?

Sounds OK-ish to me, but let me leave the answer to the guys who wrote the majority of this codec. The class could be renamed to avoid the potential confusion it may give to users. (They may think it's a handler or a codec.)

@anuraaga I am fine with the change... @Scottmitch fine as well ?

Unless there is a reason to make this public ... I vote to make the method package private. I would expect this is an internal implementation detail of codec-http.

I think that's reasonable too. Just for reference though, I do have a use case here for serializing headers into a ByteBuf in a compliant way.
https://github.com/anuraaga/armeria/blob/e0c75e14ce4725b8e5d89fd72641dd21d35d6b1b/grpc/src/main/java/com/linecorp/armeria/server/grpc/ArmeriaServerCall.java#L415
I feel like simple utilities like this one that implement the http spec have use cases and low maintenance cost, so maybe it's ok to make public, but what do you think?

Exposing internal APIs may seem innocuous at the time, but in Netty these can have a very long lifetime and we are stuck supporting them. I'm not sure what is being done in the code you referenced above but seems like a custom protocol that happens to have some overlap with HTTP? Although I see the appeal of making this method public I'm still in the "make it package private" camp.

@Scottmitch OK - updated PR to reduce visibility of the method instead.

Cherry-picked int 4.1 (ba5d1880bc7178b9ec90eeae02bdeb9456b01a0a) . Thanks!

thanks @anuraaga !


STM32G4x/STM32L4Rx/STM32L4Sx: Fix sys clock frequency and boost voltage for highest clock frequencies

This patch enables the main regulator boost voltage for sys clock highest frequency.
For STM32G4xx series, boost mode when sys clock is higher than 150MHz
For STM32L4Rx or STM32L4Sx series, boost mode when sys clock is higher than 80MHz
Signed-off-by: Francois Ramu<EMAIL_ADDRESS>

stm32g4xx: set power boost mode for sys clock greater than 150MHz

updating west.yml after merge of the https://github.com/zephyrproject-rtos/hal_stm32/pull/37

change to MHZ(xxx)
and describe PR : Fixes https://github.com/zephyrproject-rtos/zephyr/issues/22245


Missing dependencies after install

Working on driveshare-gui (on debian gnu/linux), changed the setup script to use python and pip instead of python3 and pip3` - which resolves the unmet dependency issue for the storjnode package (reported earlier).
However, the installed dataserv-client package fails to run, missing the twisted package.
╭─gordon@gordonhall  ~/Code/driveshare-gui  ‹master*›
╰─$ sudo pip install dataserv-client
Downloading/unpacking dataserv-client
  Downloading dataserv_client-2.1.12-py2-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): btctxstore>=4.6.0 in /usr/local/lib/python2.7/dist-packages (from dataserv-client)
Requirement already satisfied (use --upgrade to upgrade): partialhash>=1.1.0 in /usr/local/lib/python2.7/dist-packages (from dataserv-client)
Requirement already satisfied (use --upgrade to upgrade): storjcore>=0.0.6 in /usr/local/lib/python2.7/dist-packages (from dataserv-client)
Requirement already satisfied (use --upgrade to upgrade): future>=0.15.0 in /usr/local/lib/python2.7/dist-packages (from dataserv-client)
Requirement already satisfied (use --upgrade to upgrade): RandomIO>=0.2.1 in /usr/local/lib/python2.7/dist-packages (from dataserv-client)
Requirement already satisfied (use --upgrade to upgrade): storjnode>=0.0.18 in /usr/local/lib/python2.7/dist-packages (from dataserv-client)
Requirement already satisfied (use --upgrade to upgrade): psutil>=3.2.2 in /usr/local/lib/python2.7/dist-packages (from dataserv-client)
Requirement already satisfied (use --upgrade to upgrade): pycoin==0.52 in /usr/local/lib/python2.7/dist-packages (from btctxstore>=4.6.0->dataserv-client)
Requirement already satisfied (use --upgrade to upgrade): six==1.9.0 in /usr/lib/python2.7/dist-packages (from btctxstore>=4.6.0->dataserv-client)
Requirement already satisfied (use --upgrade to upgrade): ecdsa==0.13 in /usr/local/lib/python2.7/dist-packages (from btctxstore>=4.6.0->dataserv-client)
Requirement already satisfied (use --upgrade to upgrade): pycrypto>=2.6.1 in /usr/local/lib/python2.7/dist-packages (from RandomIO>=0.2.1->dataserv-client)
Installing collected packages: dataserv-client
Successfully installed dataserv-client
Cleaning up...
╭─gordon@gordonhall  ~/Code/driveshare-gui  ‹master*›
╰─$ dataserv-client
Traceback (most recent call last):
  File "/usr/local/bin/dataserv-client", line 6, in <module>
    from dataserv_client import cli
  File "/usr/local/lib/python2.7/dist-packages/dataserv_client/cli.py", line 4, in <module>
    from dataserv_client import api
  File "/usr/local/lib/python2.7/dist-packages/dataserv_client/api.py", line 7, in <module>
    import storjnode
  File "/usr/local/lib/python2.7/dist-packages/storjnode/__init__.py", line 1, in <module>
    from .log import logging  # NOQA auto init logging for `import storjnode`
  File "/usr/local/lib/python2.7/dist-packages/storjnode/log.py", line 4, in <module>
    from twisted.python import log as _log
ImportError: No module named twisted.python

Impossible to solve remote. I will look into it as soon as i am at home.

Looks like several packages are missing from the requirements.txt - i made it through by manually installing each missing dep, but then ran into an issue where the debian repo's pip package relies on an older version of requests - thus breaking my pip. ._.
Installing pip outside of apt and trying again. Will add missing deps to requirements.txt after i'm clear.

That is impossible. Travis unit test would fail as soon as a requirement is missing. I dont think the problem is that easy.

Apologies for the "stream of consciousness" debugging. After killing APT's version of pip and installing with easy_install (which has the newer version of pip that does not rely on the outdated requests package), all the deps install correctly - except for graphviz which gives:
╭─gordon@gordonhall  ~/Code/driveshare-gui  ‹master*›
╰─$ dataserv-client version
Traceback (most recent call last):
  File "/usr/local/bin/dataserv-client", line 6, in <module>
    from dataserv_client import cli
  File "/usr/local/lib/python2.7/dist-packages/dataserv_client/cli.py", line 4, in <module>
    from dataserv_client import api
  File "/usr/local/lib/python2.7/dist-packages/dataserv_client/api.py", line 7, in <module>
    import storjnode
  File "/usr/local/lib/python2.7/dist-packages/storjnode/__init__.py", line 3, in <module>
    from . import network  # NOQA
  File "/usr/local/lib/python2.7/dist-packages/storjnode/network/__init__.py", line 7, in <module>
    from . import map  # NOQA
  File "/usr/local/lib/python2.7/dist-packages/storjnode/network/map.py", line 6, in <module>
    import pygraphviz
  File "/usr/local/lib/python2.7/dist-packages/pygraphviz/__init__.py", line 58, in <module>
    from .agraph import AGraph, Node, Edge, Attribute, ItemAttribute, DotError
  File "/usr/local/lib/python2.7/dist-packages/pygraphviz/agraph.py", line 26, in <module>
    from . import graphviz as gv
  File "/usr/local/lib/python2.7/dist-packages/pygraphviz/graphviz.py", line 28, in <module>
    _graphviz = swig_import_helper()
  File "/usr/local/lib/python2.7/dist-packages/pygraphviz/graphviz.py", line 24, in swig_import_helper
    _mod = imp.load_module('_graphviz', fp, pathname, description)
ImportError: /usr/local/lib/python2.7/dist-packages/pygraphviz/_graphviz.so: undefined symbol: Agundirected

Any ideas here? I installed according the the Debian instruction in the README.

Okay, i was able to resolve this dependency nightmare using the info here: https://github.com/pygraphviz/pygraphviz/issues/71

Looks like you installed everything correct but i have to ask it to be sure. Did you install pygraphviz yourself with install-option or did you install it as dependency (pip install dataserv-client or pip install -re requirements.txt)?

Installed with --install-option

Did you use the path mentioned in the README? Please check that both path exists on your system.


[feat] Hold down alt/option to measure

Link to issue: https://github.com/onlook-dev/onlook/issues/540
Description

Implement Measurement overlay to show the distance between 2 rectangles when holding Alt/Option down.
Demo:
https://github.com/user-attachments/assets/a7ff6477-a305-4856-8465-a6c5992708be
What is the purpose of this pull request?

[x] New feature
[ ] Documentation update
[ ] Bug fix
[ ] Refactor
[ ] Release
[ ] Other

This is so impressive!

😱 😱 😱 😱 😱 😱 😱


Feature request: Import/export to a standard format (human readable)

Feature request:
The current backup solution is not useful without an import backup feature.
It would be nice to have an option to backup all playlists to a simple and stardard file format (.cvs, josn, xml) on exit and possible load them again from the same file on startup.
Sidenote: Plaintext files are easy to store in git and other version controlling systems and light to transfer between clients (e.g. home and work PC).

@ebadi I don't understand it, right now it's already in json format and export as .txt file. So basically it's already working as what you expected.

The .txt file is not importable to kaku. (also it does not support auto-export on exit /auto-import on start)
I cannot find any json file containing the mentioned information in the application directory or ~/.config/kaku/ . If you show me such file, the previous feature(auto export/auto-import) is not needed.

@ebadi if you can't import from local, i remembered there is one bug talking about that and it got solved in next release (1.8.0). So this should be invalid soon. While for the auto-export / auto-import feature, this is not needed because all playlist will be kept in local database. So when Kaku got boot up, it will load the data from database.
for question two, you need to click [settings panel] > [backup to localhost] and there will be one dialog popping out and ask you where to keep the file.

Maybe you are right, maybe I cannot use the feature because of the bug. I will wait for the next version :)
Thanks

cool thanks @ebadi ! working on 1.8.0 now, will be released soon this week

let me close this issue first.


Structural problems with tool calls

Newest crewai version:
With state of the art Open-Source Models, that can run locally, crewai fails.
Is there a way to intercept the tool call?
There are so many errors when tools should be called. This is a showstopper and makes crewai unusable for serious tasks other than call LLMs in a sort of orchestrated way.
It is paramount to be able to fix wrong calls and correct them automatically.
Will this be planned or is it already possible?

@drdsgvo  Do you have code example?

@drdsgvo Do you have code example?

E.g. with this tool definition (or original DuckDuckGoSearchRun)
@tool('DuckDuckGoSearch')
def search_tool(search_query: str): #also tried with param name "query"
"""Search the web for information on a given
return DuckDuckGoSearchRun().run(search_query,region="de-de")
or with
@tool('DirectoryReadTool')
def drdsgvo_docs_tool(**kwargs: Any):
""" Search the known docments for information on a given topic """
#...
#calling using DirectoryReadTool
then using these tools for two agents, one tool per agent
these tools come into play for agents that act as researchers, after an agent acting as a planner.
I do not think that it is about code examples here. My question is whether one can handle badly formulated agent ouput that serves as basis for tooling? If that isn not possible, then crewai is not really useful with current local models.
model: llama3 (8b)

Hey @drdsgvo, here an example which fails using other models than GPT-40. I used llama3 hosted by groq. CrewAI tries to delegate to a fictional co- worker for the story creation. For translation it tries to use a translation tool.
This is just an example, I have other use- cases where the tool gets called correctly, the "Thought" is correct but crewAI enters in a loop which fails at max. iterations.

# crewai imports
from crewai import Agent, Task, Crew, Process
from crewai_tools import tool
from crewai.tasks.task_output import TaskOutput

# langchain imports
from langchain_groq import ChatGroq
from langchain_core.callbacks import CallbackManager, StreamingStdOutCallbackHandler
from langchain_openai import ChatOpenAI

# other imports
import dotenv
import os

# load API_Keys
_ = dotenv.load_dotenv()

# callback manager for streaming output
callback_manager = CallbackManager([StreamingStdOutCallbackHandler()])

llm = ChatGroq(
    api_key=os.environ.get("GROQ_API_KEY"),
    model="llama3-70b-8192",
    callback_manager=callback_manager,
    temperature=0.0
)
# llm = ChatOpenAI(
#     api_key=os.getenv("openAI_API_KEY"),
#     model="gpt-4o",
#     # model="Mixtral-8x7b-32768",
#     callback_manager=callback_manager,
#     temperature=0.0
# )

@tool("openFile")
def open_file(path_to_file: str):
    """
    This tool is useful if you have to check the contents of a given text file
    """
    with open(path_to_file, "rt") as f:
        return f.read()

def callback_function(output: TaskOutput):
    # Do something after the task is completed
    with open("initial_story.txt", "wt") as f:
        f.write(f"{output.raw_output}")

comedian = Agent(
    role="comedian",
    backstory="You are the host of a famous late night show and known for your funny stories.",
    goal='funny story',
    verbose=True,
    llm=llm,
    tools=[open_file],
)

translator = Agent(
    role="translator",
    backstory="You are a experienced translator for translating text from English to Spanish",
    goal='translated text',
    verbose=True,
    llm=llm,
)

create_story = Task(
    description="Tell a funny story about the following topic {topic}. Make it short."
                "You have a personal archive with all stories for all topics you ever told before, this is the path to it: {file_path_to_stories}"
                "if you find a story about the {topic}, re use it and don't tell a new one",
    callback=callback_function,
    expected_output="a funny story",
    agent=comedian
)

translate_story = Task(
    description="translate the given context to spanish",
    expected_output="a good translation of the given context",
    agent=translator,
    context=[create_story],
    output_file="spanish_story.txt"
)

crew = Crew(
  agents=[comedian, translator],
  tasks=[create_story, translate_story],
  process=Process.sequential,
  verbose=2,
)

if __name__ == "__main__":
    crew.kickoff(inputs={
        "topic": "cat",
        "file_path_to_stories": "./archive.txt"}
    )

archive.txt:
Alright, folks, let me tell you about the time I went snorkeling and had a run-in with a jellyfish. So there I was, floating in the crystal-clear waters of the Caribbean, feeling like a majestic sea creature myself. Suddenly, I felt this weird, tingling sensation on my arm. I looked down and saw a jellyfish just chilling there, like it was on vacation too.

 This one was just bobbing around, minding its own business, but I was convinced it was out to get me. I started flailing around, trying to get away from it, but the more I moved, the more it seemed to follow me. It was like a bad date that just wouldn't take the hint.

Eventually, I managed to swim back to the boat, where the guide told me that the jellyfish was harmless and probably more scared of me than I was of it.  So, the moral of the story is: if you ever find yourself face-to-face with a jellyfish, just remember, it's not out to get you—it's just trying to figure out what the heck you are too!


Set up the integration of the code coverage service

Candidates:

Codecov
COVERALLS
Code Climate

@yaamai
I think Codecov would be better.
Could you tell me your recommendation of the coverage service?

I am not very familiar code-covarage SaaS
But I see some OSS repository in use codecov.

Thanks for merging.


Add ClickHouse to Columnar Databases

@igorbarinov any reasons not to add this one? It is close to 17K stars here https://github.com/clickhouse/clickhouse.

Thanks for the PR


Question: About client side Pagination

I create all my models or entities by examples in this starter-kit. This starter kit is soo cool. But have a problem in client side pagination. Everywhere, even in relay-modern documentation examples uses viewer root query field.   So i tried to rewrite like this
root Query
const orderQuery = 'query routesOrdersQuery { ...Orders_orders }'
in paginationContainer
fragment Orders_orders on Query {     orders(first: $first) @connection(key: "Orders_order") {          edges{              node {                  id              }          }     } }
In this case dump Orders component  field gets undefined.
Please help . How are you implementing pagination in relay?

This is wrong place where i seeked error. The problem would be in Routes render method.
Correct code is
const orderQuery = `query routesOrdersQuery { ...Orders_orders }`

...

<Route
      path="/orders"
      render={({error, props}) => {
            if(error) {
              return
{error.message}

            } else if(props) {
              return <Orders query={props} />
            } else {
              return
Loading...

            }
          }}
    query={orderQuery}
/>

if your place just
render={(error, props) => {
return <Orders query={props} />
}}

Nothing works


[WiP] Collaboration

I'm going to open this PR but it still has a bit of work to do:
Namely: Figure out if the packaging system from @knrafto will work for this (and test it on windows as well)

Going to merge the updates on master (#209) into this branch and do some minor cleanup

@knrafto: Should have addressed all of the comments.


make bullet point black instead of violet

I think theres a better way of doing this, by just making a function in JS saying to ignore the bullet point from using the CSS, but idk how to do that.

Oh, the bullet point comes on top of the line. Will work on this shortly.

Do what I did before with 2 p tags but then use this:
https://stackoverflow.com/questions/25009556/display-inline-two-p-tag/25009615#:~:text=stands for "paragraph,%2C such as .&text=Use float%3Aleft on the,float%3Aright on the second.

I dont care about the color of the bullet point anymore, it looks good as violet too lol..


Error Fetching App Record in xcode ios app

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

open your flutter ios app in xcode
create a build
now create a archive for test-flight upload

Expected results
the app should get uploaded to test-flight for testing
Actual results
upload to test-flight fails with the following error Error Fetching App Record in xcode ios app
Code sample
final googleSignIn = GoogleSignIn(scopes: widget.scopes, clientId: widget.clientId);
try {
  final account = await googleSignIn.signIn();
  if (account != null) {
    widget.onSuccess(account);
  } else {
    widget.onCancel?.call();
  }
} catch (e) {
  widget.onFailure(e);
} finally {
  setState(() {
    _isLoggingIn = false;
  });
}

Screenshots or Video
No response
Logs
NA
Flutter Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.13.2, on macOS 14.0 23A344 darwin-arm64, locale it-IT)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.2)
[✓] VS Code (version 1.83.1)
[✓] Connected device (5 available)
[✓] Network resources
• No issues found!

Hey i got the same issue yesterday found the solution here : https://namastenerd.in/nerdexchange/question/error-fetching-app-record-in-xcode-ios-app/

thanks will check this, i guess you have not added the link correctly

It seems the issue is resolved based on above comment and it didn't seem to be specific to Flutter, but due to config issue.
Closing as such.


Render context AND Log fixes

I spend and hour to make it cool (to have separate PR fo log and render context but i failed so take it easy

I spend and hour to make it cool (to have separate PR fo log and render context but i failed so take it easy

Okay, no worries, it's okay to have PRs with AND occasionally, but it would be good to preserve clean approach in the long run


[Fix] #205 Navigate to profile link after clicking on it.

Description
This PR updates the footer section of our website to improve its layout, responsiveness, and add social media icons.
fixes #205
Changes Made

Restructured footer HTML for better semantic markup
Updated CSS to improve footer layout and responsiveness
Added social media icons to the footer
Ensured consistent styling across different screen sizes

Testing

Tested on multiple screen sizes (mobile, tablet, desktop)
Verified all links are working correctly
Checked for any visual inconsistencies

Before:

After:

Conflicting files
assets/css/style.css
index.html

Please see the conflicts highlighted in the image above. Resolve the conflicts in the mentioned files. Ensure you pull all the latest changes before pushing your feature/bug fixes to the main branch. After resolving the conflicts, please open a new PR for review.
Thank you!


Fix get_account_ids

Motivation
When testing with the cli, I found an error when running:
cargo run --release --features testing -- sync-state sync-state

store error: failed to parse data retrieved from the database: Integer -9151043079678472443 out of range at index 0

Changes

read an i64 from rusqlite's Row and cast it to u64 afterwards (I saw this was being done for other ids)

Steps to reproduce
It might take a few tries because it will depend on the generated faucet id. For each try do:
rm target/release/store.sqlite3
cargo run --release --features testing -- mock-data
cargo run --release --features testing -- account new fungible-faucet -t TEST -d 10 -m 10000
# It should raise here
cargo run --release --features testing -- sync-state sync-state

closing as I opened the same PR pointing to the forked repo


Add tools to enable users to request membership in a pre-defined list of user groups

I did some work to scope this feature out further. It really would take quite a while so I'm punting on it until required for Azores nearshore planning.
Public Groups

Admins can define user groups that are publicly listed.
When signing up, users will be prompted to request access to these groups and administrators can decide whether to admit them.
Admins receive email notification of access requests

From this email they can approve or deny the request directly from the email, or follow a link back to seasketch to manager users
Access requests are also shown in the user management list

From the project-user perspective, users see their access request whenever viewing areas that may have protected content, like forums, sketching tools, or data layers.
Groups may be set to automatically approve access requests
Users will need a way to manage access requests after initial approval
User groups will need to be translatable

Tasks

[] create feature flag for group-requests (1 hr)
[] add translatedProps support for group labels (2 hrs)
[] schema support (8 hrs)

[] add supports_access_requests boolean to project_groups
[] somehow rationalize group access requests with the main access request workflow
[] add stored procedures to approve or deny requests
[] add "advertised" boolean to forums to encourage access requests

[] email notifications (16 hrs)

[] send emails for project access requests
[] send emails for group access requests
[] add rest endpoints that support direct approval/denial from email
[] add workflow to notify all users in a project of a new group (8 hrs)

[] add rest endpoints for end users to request access to a group (4 hrs)

[] Admin UI

[] translatedProps for group labels (1 hr)
[] group acl controls (1 hr)
[] advertised boolean and validation with group acl (2 hrs)
[] access request listing (12 hrs)

[] End-User UI

[] Add group request to "join project workflow"

[] Join project (2 hrs)
[] Request access for private projects (1 hr)

[] Show request access prompt when attempting to view restricted forums (4 hrs)
[] Add access request form and status indicator to user profile (4 hrs)

66 hours total


Question: Does this work with @import?

I'm trying to use this plugin with Bootstrap 5, which hasn't migrated to @use and @forward.
Whenever I save a partial that is brought into my main.scss with @include, the eleventy build starts again, but the generated .css file is left unmodified. It's as if the cache isn't touched for the generated file.

I didn't write this plugin with @import in mind, but it should work.
Could you try the following command:
DEBUG=*EleventySass* npx @11ty/eleventy --serve

and you will get the dependency map of your SCSS files in your shell output.
Or, could you please show me a minimum code which doesn't work.

I confirmed that this plugin works with @import in my local environment.
Take a look at the following, if you like:
https://github.com/kentaroi/eleventy-sass-bootstrap-sample
If you found any bugs in the plugin, please attach the code that fails and your environment info.


Integrate with CLI or Atom

Hey @wooorm! 👋
Is it possible to use this on the CLI, or within an editor that shows all of the issues at once in a block? I'm tired of manually looking for red underlines in Atom, and want a cleaner solution.

Cool, I didn't know that alex had a plugin.
I was more interested in just seeing all spelling errors, really. The dictionary and language should be the system defaults, but it should ignore code blocks.
The UI could be almost identical to atom-linter-alex, actually. I was thinking more about just outputting all errors to STDOUT, and not bothering with atom at all.

With a .remarkrc.js like this:
/* `.remarkrc.js` */
var unified = require('unified')
var remark2retext = require('remark-retext')
var english = require('retext-english')
var spell = require('retext-spell')
var dictionary = require('dictionary-en-us');

exports.plugins = [
  [remark2retext, unified().use(english).use(spell, dictionary)]
]

...you should be able to run remark . on the CLI or with linter-remark in atom, and that should highlight spelling mistakes!

The dictionary and language should be the system defaults

Hmm, not sure about how that should work 🤔
I also saw spellchecker-cli, maybe that’s interesting?

spellchecker-cli does what I need! Good catch!
I think I will use that for now. Shall I close this?


AttributeError: 'NoneType' object has no attribute 'gradInput'

running convert_torch.py, I have this issue:
$ python ~/usr/convert_torch_to_pytorch/convert_torch.py -m file.t7
Traceback (most recent call last):
File "/home/ppreux/usr/convert_torch_to_pytorch/convert_torch.py", line 314, in
torch_to_pytorch(args.model,args.output)
File "/home/ppreux/usr/convert_torch_to_pytorch/convert_torch.py", line 261, in torch_to_pytorch
model.gradInput = None
AttributeError: 'NoneType' object has no attribute 'gradInput'
Thanks for any help

You can debug the code to find where model is changed to None.


[Select][v1] renderValue ignored for falsy values

Expected Behavior
<Select
  value={null}
  renderValue={value => value || '}
  input={<Input />}
>

Current Behavior

Steps to Reproduce (for bugs)

Context

Your Environment

Tech
Version

Material-UI

React

browser

etc

Sorry. I started writing this, then realised it doesn't make sense, but somehow submitted it anyway

@dapetcu21 No problem. Also, on your example. The input property is optional.