MODEL_PROVIDER: OAIClient

MODEL_PROVIDER: OAIClient   #默认使用OpenAI格式的兼容客户端，此客户端能够适配OpenAI以及各类兼容OpenAI格式的本地模型
您好,测试过程兼容OpenAI格式的本地模型都有哪些?
Agently Guidebook
Apply Developers WeChat Group or Scan QR Code to Apply.

Use Ollama or Xinference to start a local model service. Their model services are compatible OpenAI format automatically.
使用Ollama或者Xinference这样的本地模型推理服务启动框架，他们的本地服务默认适配了OpenAI的格式

好的 谢谢。

您好,我安装完X inference和Agently环境后通过一下两种方式访问:

通过命令行的方式访问(没有问题)
curl -X 'POST'
'http://<IP_ADDRESS>:9997/v1/chat/completions'
-H 'accept: application/json'
-H 'Content-Type: application/json'
-d '{
"model": "my-internlm2-chat",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你好,请介绍一下你自己?"
}
]
}'
{"id":"chat286fe888-25c2-11ef-a6bb-0242ac110004","object":"chat.completion","created":1717870130,"model":"my-internlm2-chat","choices":[{"index":0,"message":{"role":"assistant","content":"您好！我是一名人工智能助手，能够帮助您完成各种基于语言的任务。我致力于通过执行常见的基于语言的任务和提供建议来帮助人类。如果您有任何问题或需要帮助，请随时向我提问。"},"finish_reason":"stop"}],"usage":{"prompt_tokens":-1,"completion_tokens":-1,"total_tokens":-1}}%

2.通过Agently框架访问-报错
import Agently
agent_factory = (
Agently.AgentFactory()
.set_settings("current_model", "OAIClient")
.set_settings("model.OAIClient.auth", { "api_key": "" })
.set_settings("model.OAIClient.url", "http://<IP_ADDRESS>:9997/v1")
.set_settings("model.OAIClient.options", { "model": "my-internlm2-chat" })
)
agent = agent_factory.create_agent()
@agent.on_event("delta")
def handler(data):
print(data,end="")
result = (
agent.input("你好,请介绍下你自己?")
.start()
)
pass
Exception in thread Thread-1:
Traceback (most recent call last):
File "/Users/yangli/Library/Python/3.8/lib/python/site-packages/Agently/Agent/Agent.py", line 240, in start_in_theard
reply = loop.run_until_complete(self.start_async(request_type))
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
return future.result()
File "/Users/yangli/Library/Python/3.8/lib/python/site-packages/Agently/Agent/Agent.py", line 227, in start_async
raise(e)
File "/Users/yangli/Library/Python/3.8/lib/python/site-packages/Agently/Agent/Agent.py", line 177, in start_async
event_generator = await self.request.get_event_generator(request_type)
File "/Users/yangli/Library/Python/3.8/lib/python/site-packages/Agently/Request/Request.py", line 116, in get_event_generator
response_generator = await request_plugin_export"request_model"
File "/Users/yangli/Library/Python/3.8/lib/python/site-packages/Agently/plugins/request/OAIClient.py", line 208, in request_model
stream = await client.chat.completions.create(**request_data)
File "/Users/yangli/Library/Python/3.8/lib/python/site-packages/openai/resources/chat/completions.py", line 1181, in create
return await self._post(
File "/Users/yangli/Library/Python/3.8/lib/python/site-packages/openai/_base_client.py", line 1790, in post
return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)
File "/Users/yangli/Library/Python/3.8/lib/python/site-packages/openai/_base_client.py", line 1493, in request
return await self._request(
File "/Users/yangli/Library/Python/3.8/lib/python/site-packages/openai/_base_client.py", line 1569, in _request
return await self._retry_request(
File "/Users/yangli/Library/Python/3.8/lib/python/site-packages/openai/_base_client.py", line 1615, in _retry_request
return await self._request(
File "/Users/yangli/Library/Python/3.8/lib/python/site-packages/openai/_base_client.py", line 1569, in _request
return await self._retry_request(
File "/Users/yangli/Library/Python/3.8/lib/python/site-packages/openai/_base_client.py", line 1615, in _retry_request
return await self._request(
File "/Users/yangli/Library/Python/3.8/lib/python/site-packages/openai/_base_client.py", line 1584, in _request
raise self._make_status_error_from_response(err.response) from None
openai.InternalServerError: Error code: 502
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/Users/yangli/Library/Python/3.8/lib/python/site-packages/Agently/Agent/Agent.py", line 243, in start_in_theard
raise Exception(f"[Agent Request] Error: { str(e) }")
Exception: [Agent Request] Error: Error code: 502
这是为什么?

您好，请问如果尝试把.set_settings("model.OAIClient.auth", { "api_key": "" })注释掉，能够正常工作吗

您好。不可以。

您好,关闭本地代理就解决上面问题。

2024-06-14 02:22:24,694 - ERROR - Node Execution Exception-'generate_columns'(8db2f047-6ac4-4ac2-8dfd-0cc9065b0ec4):
asyncio.run() cannot be called from a running event loop
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 336, in _exec_chunk_with_dep_core
exec_res = chunk_executor(input_value, self.store)
File "/Users/yangli/Desktop/doc/ChatGPT/Agently-Daily-News-Collector-main/workflows/main_workflow.py", line 58, in generate_columns_executor
column_data = start_column_workflow(
File "/Users/yangli/Desktop/doc/ChatGPT/Agently-Daily-News-Collector-main/workflows/column_workflow.py", line 152, in start
column_workflow.start()
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/Workflow.py", line 76, in start
res = asyncio.run(self.start_async(start_data))
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/runners.py", line 33, in run
raise RuntimeError(
RuntimeError: asyncio.run() cannot be called from a running event loop
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/yangli/Desktop/doc/ChatGPT/Agently-Daily-News-Collector-main/./app.py", line 21, in
main_workflow.start(
File "/Users/yangli/Desktop/doc/ChatGPT/Agently-Daily-News-Collector-main/workflows/main_workflow.py", line 109, in start
main_workflow.start()
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/Workflow.py", line 76, in start
res = asyncio.run(self.start_async(start_data))
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
return future.result()
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/Workflow.py", line 72, in start_async
res = await self.executor.start(executed_schema, start_data)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 46, in start
await self._execute_main(executed_schema.get('entries') or [])
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 101, in _execute_main
await asyncio.gather(*entry_tasks)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 87, in execute_from_entry
await self._execute_partial(
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 175, in _execute_partial
await asyncio.gather(*next_child_tasks)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 146, in _execute_partial
await execute_child_chunk(next_chunk)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 129, in execute_child_chunk
child_executed = await self._execute_single_chunk(
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 203, in _execute_single_chunk
await self._execute_single_chunk_core(
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 230, in _execute_single_chunk_core
exec_value = await self._exec_chunk_with_dep_core(chunk, single_dep_map)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 340, in _exec_chunk_with_dep_core
raise Exception(e)
Exception: asyncio.run() cannot be called from a running event loop
sys:1: RuntimeWarning: coroutine 'Workflow.start_async' was never awaited

2024-06-14 02:22:24,694 - ERROR - Node Execution Exception-'generate_columns'(8db2f047-6ac4-4ac2-8dfd-0cc9065b0ec4): asyncio.run() cannot be called from a running event loop Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 336, in _exec_chunk_with_dep_core exec_res = chunk_executor(input_value, self.store) File "/Users/yangli/Desktop/doc/ChatGPT/Agently-Daily-News-Collector-main/workflows/main_workflow.py", line 58, in generate_columns_executor column_data = start_column_workflow( File "/Users/yangli/Desktop/doc/ChatGPT/Agently-Daily-News-Collector-main/workflows/column_workflow.py", line 152, in start column_workflow.start() File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/Workflow.py", line 76, in start res = asyncio.run(self.start_async(start_data)) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/runners.py", line 33, in run raise RuntimeError( RuntimeError: asyncio.run() cannot be called from a running event loop
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/Users/yangli/Desktop/doc/ChatGPT/Agently-Daily-News-Collector-main/./app.py", line 21, in main_workflow.start( File "/Users/yangli/Desktop/doc/ChatGPT/Agently-Daily-News-Collector-main/workflows/main_workflow.py", line 109, in start main_workflow.start() File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/Workflow.py", line 76, in start res = asyncio.run(self.start_async(start_data)) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/runners.py", line 44, in run return loop.run_until_complete(main) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete return future.result() File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/Workflow.py", line 72, in start_async res = await self.executor.start(executed_schema, start_data) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 46, in start await self._execute_main(executed_schema.get('entries') or []) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 101, in _execute_main await asyncio.gather(*entry_tasks) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 87, in execute_from_entry await self._execute_partial( File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 175, in _execute_partial await asyncio.gather(*next_child_tasks) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 146, in _execute_partial await execute_child_chunk(next_chunk) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 129, in execute_child_chunk child_executed = await self._execute_single_chunk( File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 203, in _execute_single_chunk await self._execute_single_chunk_core( File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 230, in _execute_single_chunk_core exec_value = await self._exec_chunk_with_dep_core(chunk, single_dep_map) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/Agently/Workflow/MainExecutor.py", line 340, in _exec_chunk_with_dep_core raise Exception(e) Exception: asyncio.run() cannot be called from a running event loop sys:1: RuntimeWarning: coroutine 'Workflow.start_async' was never awaited

这个问题是主框架升级<IP_ADDRESS>版本更新了workflow的工作内核逻辑导致的，因为之前workflow不支持list循环，项目里用了奇怪的方式进行适配，我后续会修改项目的实现方式
现在重装一下Agently框架，回退到<IP_ADDRESS>版本即可
pip  install  Agently==<IP_ADDRESS>
我也已经修改了requirements.txt文件，做了版本限制

新版本<IP_ADDRESS>已经适配了当前的表达方式，能够支持在workflow里直接用.start()嵌套另一个workflow了
该问题完全修正了


StatsItem not remove after group or topic be removed

BUG REPORT

Please describe the issue you observed:
BrokerStatsThread at broker side will make some statistic on group level and topic level. After a subscription group or topic be removed, the corresponding stats item not be removed untill broker restart.
I need to create new group frequently and each group will be removed after finish it's sonsumption task.

The StatsItem of nonexistent group would never be removed which may cause oom.
I have already add such interface and remove StatsItem when group or topic be removed.
Maybe create and remove a group frequently is not a good idea, but can BrokerStatsManager provide a interface to remove unused statsItem?

This issue we can put forward a pr for this enhancement.

@fortrueme

@fortrueme


Provide mapping metadata to Model interfaces

Problem
There are certain use cases, like groupBy (#1) that currently require dropping to the queryRaw level. However, to the best of my knowledge, the Prisma Client provides no way to interpolate table and column metadata into the query expression. For example, if I have a model like
model Post {
  id String @id @default(cuid())
  title String
  body String
  category String
}

...and I want to get the count of all blog articles by tag, I'd have to do something like this:
prisma.queryRaw("SELECT category, COUNT(id) FROM Post GROUP BY category")

However, if I change my model to something like this:
model Post {
  id String @id @default(cuid())
  title String
  body String
  category String @map(name: "tag")
  @@map(name: "blog_posts")
}

The above query will break without any sort of compiler warnings.
Suggested solution
Provide some additional fields in the Prisma Client to retrieve table names and columns. For example:
const mapping = prisma.post.mapping()
const tableName = mapping.name
const categoryColumn = mapping.fields.category
const idColumn = mapping.fields.id

const sql = [
  `SELECT ${categoryColumn}, COUNT(${idColumn})`,
  `FROM ${tableName}`,
  `GROUP BY ${categoryColumn}`
].join(" ").toString() // coerce from template string so that column vars aren't treated as SQL params

const results = await prisma.queryRaw(sql)

Alternatives
Alternatively, one could provide the values as a top-level object in the model DSL:
const model = prisma.post
const tableName = model.mappedName()
const categoryColumn = model.mappedFieldNames().category
const idColumn = model.mappedFieldNames().id
...

Additional Context
If this feature is provided, I could see recommending this mapping metadata to be coupled a fluent SQL DSL like Knex. This would provide even greater type-safety from the SQL :
const mapping = prisma.post.mapping()
const tableName = mapping.tableName
const categoryColumn = mapping.field.category
const idColumn = mapping.field.id

// http://knexjs.org/#Interfaces-toSQL
const { sql } = await knex.select(categoryCount).count(idColumn).from(tableName).toSQL().toNative()
const results = await prisma.queryRaw(sql)

It's worth noting that I changed my original proposal prisma.post.mapping to prisma.post.mapping() after I realized that there likely needs to be a call to the Prisma engine to retrieve this mapping object. I don't believe the Prisma Client is directly privy to this info as it's something that's only needed at query-time.


Resolve Apple M1 Arch Support Issues

Description
Cleans up amd/arm64 arch behavior for Apple M1 computers.  This PR will not cover all tasks in #386, only those related to Apple M1 usage.
Related Issue
#386
Type of change

[x] Bug fix (non-breaking change which fixes an issue)

Checklist before merging

[ ] Documentation has been updated as necessary (add the needs-docs label)

Tests are failing because package names generation has been changed but we're still using the old name in the tests. Once the test get updated I will approve.


New package: Smesh v0.1.0

Registering package: Smesh
Repository: https://github.com/trixi-framework/Smesh.jl
Created by: @sloede
Version: v0.1.0
Commit: cb50e0ff9573a2651de9d280ec859ea86f05523f
Reviewed by: @sloede
Reference: https://github.com/trixi-framework/Smesh.jl/commit/cb50e0ff9573a2651de9d280ec859ea86f05523f#commitcomment-137872674
Description: Smesh.jl is a lightweight wrapper of the Fortran package smesh for generation and handling of unstructured meshes

@goerz Thank you for the fast confirmation 🙏! I was just about to write that since this is a wrapper package for the Fortran package smesh, it would be great if the naming guidelines could be slightly relaxed here.
cc @bennibolm @simonechiocchetti


Multiple folder drop resource crash

@alvacouch
I have broken another resource for you which may help amplify the canary in the coal mine.
I have made you an owner of
https://www.hydroshare.org/resource/636878cd2380443b907d25aa51a7043a/
These are the steps that led to the demise of this resource:

Create resource
Drag and drop one folder.
While the folder was still uploading, drag and drop another folder
The uploading messages looked like it was busy doing something, and would start uploading with messages about the size and progress, but it was not clear what was being uploaded... each file in the folder? with a restarting upload message for each one?
Eventually the uploading stopped but the data and content folder gave a message that they are empty.
The next day I revisited it and the data and content just gave me a blue spinning wheel.

When we do an operation on our computer such as unzipping from the same program, we can do parallel operations, so users may try to drop additional folders, while one folder is still uploading.    I am not sure about parallel uploading into places like Google and Dropbox.
One solution is that HydroShare should prevent the user from attempting a parallel upload with a message box.   We may need to add more uploading messages in the next release.

I also made you an owner of this resource
https://www.hydroshare.org/resource/e621db2061b648668d3b4ad80d4ce525/
I specifically was careful not to attempt folder drops while other folders were uploading.  In this case,

Drop 300mb zipped file into resource.  This appeared fine.
Simulaneously drop multiple folders.  This now shows no content.

@Castronova  -- I'm trying to get the DHSVM test data to you ! Really trying...

@ChristinaB one of the causes for these problems that Alva tracked down was dots in file/folder names.  If you want this to work to get a job done, avoid dots for now.  This is hopefully to be fixed in the near future.
You could also try do this sequence on http://beta.hydroshare.org.  However be aware, that beta is a separate and transient virtual universe, so nothing will persist there.  It is good for debugging, and for perhaps getting stuff to Tony temporarily, but it may go "poof" at random.  If this works on beta, it is good news as it means the improvements already implemented have fixed these problems.  If this fails on beta, you can type /debug/ after the resource GUID in its landing page and get a debugging report that would be informative to Alva.

@ChristinaB Dots in folder names are fixed in PR #2118 and up for testing on https://CUAHSI-dev-1.hydroshare.org as noted elsewhere. They are not pushed to beta yet. This is my personal development server at RENCI.
@dtarb The more difficult problem of dealing with concurrent operations I am just starting to address. For now, concurrent operations aren't going to work reliably.
Anyway, I am trying to get people to bang on CUAHSI-dev-1.hydroshare.org and see if at least the '.' problem is fixed. I am aware now, however, of other bugs that cause file corruption.

@ChristinaB  @dtarb See #2122 for further discussion on this issue. I have done my best to prevent file corruption for 1.10.0, but have not been able to come up with a simple and consistent way to prevent concurrency botches of the kind you describe. Will take this on for 1.11.0. So for now, caveat emptor.

I think this is concurrent with other issues so am closing


Typo

[Enter feedback here]
In the following section you have a typo where you wrote "na,e" instead of "name"
https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-kafka-connect-debezium#test-change-data-capture

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

ID: 1800bc69-1c54-7bb5-d127-0b5a94d3762d
Version Independent ID: 7d829763-6a0f-fb98-8df7-28f3684a1690
Content: Integrate Apache Kafka Connect on Azure Event Hubs with Debezium for Change Data Capture - Azure Event Hubs
Content Source: articles/event-hubs/event-hubs-kafka-connect-debezium.md
Service: event-hubs
GitHub Login: @abhirockzz
Microsoft Alias: abhishgu

Thanks for the feedback and bringing this to our notice . At this time we are reviewing the feedback and will update the document as appropriate .


Add return types

Coverage remained the same at 92.347% when pulling cc8bad4afd783cd0f4217d2b8fb8e821e7fa5211 on SpacePossum:master_return_types into d40f78eab5afc1b8d851e5d5a33bee5cc6acc801 on FriendsOfPHP:master.


Is this a bug？

https://github.com/ljbkusters/python-wigner-distribution/blob/34910d37e86e72d4b6a829ec2b1c3687e4d59b1f/toolkits/wigner_toolkit.py#L135
my input of wvd is 256x256 matrix. Run this code will raise  IndexError： 38407 is out of bounds for axis 0 with size 16.  that means smoothing_index_best_guess = numpy.argmax(numpy.abs(first_derivative)) will get 38407.   Is this a bug ?

I will have a look at it some time soon, I'm quite busy with other projects at the moment but I don't remember seeing something like this occuring before.

Okay so I did have some time to review this after all and aparently I messed up the indexation. I worked with this code a few months ago but had to rewrite it from scratch and I must have at that point made some indexation mistake. Anyway, this bug should be fixed now with the latest commit. To be fair, this function has not yet been tested thorougly enough so I'm not sure if it will work as intended though I previously managed to get interesting results (again, this was part of another code base, and I had to redo the code here from scratch), so I know the method works in practice, just not if this implementation is valid.

thanks a lot


Update flutter_web_auth to flutter_web_auth_2?

I finally took the initiative and updated flutter_web_auth for proper Flutter 3 support (using noga-dev's changes) and some more stuff!
The new package is available here: https://pub.dev/packages/flutter_web_auth_2
Since I think that my updated package is only compatible with Flutter 3+, it might be worth noting this as a breaking change and providing a new major version number for the users
Edit: I forgot to mention that migrating is pretty easy: https://pub.dev/packages/flutter_web_auth_2#upgrading-from-flutter_web_auth

@okrad if you have nothing against, I can take care of the migration. There's no contact with the author (which you can see e.g. under this PR, that was made to support Flutter 3: https://github.com/LinusU/flutter_web_auth/pull/118). Thanks!

@ThexXTURBOXx, @PiotrMitkowski sorry for the late reply, I'm quite busy ATM...
I too am under the impression that flutter_web_auth is in a stale state, and was already looking for other viable solutions. If you are willing to carry on the fork it would be great! There are definitely a couple of PRs that I'd like to see merged, starting with Linux support...
@PiotrMitkowski, I'd gladly accept a PR for the migration. Can you update the README too?
Thank you!

@okrad Yes, I am trying to keep my fork as up-to-date as possible. Also, i was already merging many PRs that added Windows support, better support for Android, MacOS and iOS and so on.
There is also a big restructure going on (which does not break packages, but refactors the inner workings of the package).
If @PiotrMitkowski wants to do this, he should just go ahead! If he does not do it within the next few days, I will just do it myself then :)

@okrad @ThexXTURBOXx No problem, I'll land the PR soon.

This is done :)


As a developer I would like to have a HeadlessCmsPluginBase so that I can provide a simple plugin visualization for editors without having to write a plugin template for each of my custom plugins.

As a developer I would like to have a HeadlessCmsPluginBase so that I can provide a simple plugin visualization for editors without having to write a plugin template for each of my custom plugins.
A default template could show the name of the plugin as well as all fields in a list.

Solution Example
plugins/your_custom_plugin/cms_plugins.py (just an example on how to use HeadlessCMSPluginBase)
class CustomHeadingPlugin(HeadlessCMSPluginBase):
    model = models.CustomHeadingPluginModel
    module = 'Layout Helpers'
    name = "My Custom Heading"
    allow_children = False

headless_plugin_base.py
from cms.plugin_base import CMSPluginBase
from django.forms import ModelForm

from . import models

class HeadlessCMSPluginBase(CMSPluginBase):
    render_template = 'headless-plugin-default.html'

    # ModelForm
    def get_form_instance(self, instance):
        class HeadlessGenericForm(ModelForm):
            class Meta:
                model = self.model
                fields='__all__'

        form = HeadlessGenericForm(instance=instance)
        return form

    def render(self, context, instance, placeholder):
        form = self.get_form_instance(instance)
        context = super().render(context, instance, placeholder)
        context.update({
            'form': form,
            'name': self.name
        })
        return context

templates/headless-plugin-default.html

{{ name}} (#{{ instance }})

  {% for field in form %}

        {{ field.label }}: {{ field.value }}

  {% endfor %}

Nice! Thank you! I'd love to even just show the admin form (which might be formatted using fieldsets on the plugin class).

@macolo Thinking a bit about this proposal, I would potentially go one step further:

In the core, allow plugins to not have a template for headless configurations
Instead, display the (read-only) admin form (first fieldset only) using admin styles for the plugin
Allow plugins to declare exceptions (e.g., text which might as well be displayed immediately)/allow a setting to declare exceptions for plugins (needs no change to existing plugins)

This way, we can have the following:

The data is organized in accordance to how it appears in the change form.
Most important fields are shown only (avoid info overflow)
Custom form widgets are respected, such as for filer

that sounds great!


Big endian fixes

This set of patches fixes a number of issues on big-endian architectures as described in #493. I have successfully built and tested these with Debian/unstable on powerpc and ppc64 (not ppc64el).
The pe module has not been fixed to work on big-endian, so far; I have disabled the pe-specific tests for the time being. I'm going to fix the module code if these fixes get merged.

Apparently, the endianess check does not work on Mac OS X.

Build and tests pass on OSX now.


CI Best Practices Guide: SAPUI5/SAP Fiori on ABAP Front-End Server

This is great stuff! Thanks for the tutorial!
Has there been any thought around writing this as a grunt task in the grunt-openui5 repo?
I was able to take this code and tweek it a bit to get the bit so that the build client spun up a connect server to serve the zip file to the frontend server.
The main hurtle I can think of is saving a password in the config would probably not be ideal.
Thanks again!

@wolframK :)

Thank you very much for your feedback.
Personanally, I think it is a good idea to bring this to the grunt-openui5 repo, but I have to delegate the decision to the responsible people.
@matz3 @RandomByte
What do you think?
@TheGreenToaster

@wolframK I laid it out here. Would be very interested in your feedback :)

Hi @TheGreenToaster
could you please open a pull request for your change. We will then dicuss this internally.
Thanks,
Wolfram

As discussed here, it looks like the ABAP upload process is being reworked at the moment. An easier interface is planned and with that probably a new grunt task.
We will therefore not add this soon-to-be-deprecated task to one of our repositories.


Desktop App does not close and always reopens

Background
I have a basic Desktop app with the following config:
application.ex
defmodule WebInterface.Application do
  use Application

  alias Desktop
  alias Manager
  alias WebInterface.{Endpoint, PubSub, Telemetry}

  @impl true
  def start(_type, _args) do
    children = [
      Telemetry,
      {Phoenix.PubSub, name: PubSub},
      Endpoint,
      Manager,
      {Desktop.Window,
       [
         app: :web_interface,
         id: WebInterface,
         title: "Market Manager",
         size: {900, 900},
         icon: "static/images/resized_logo_5_32x32.png",
         url: &WebInterface.Endpoint.url/0
       ]}
    ]

    opts = [strategy: :one_for_one, name: WebInterface.Supervisor]
    Supervisor.start_link(children, opts)
  end

  @impl true
  def config_change(changed, _new, removed) do
    WebInterface.Endpoint.config_change(changed, removed)
    :ok
  end
end

This is basically the default configuration. You will notice the desktop app does not have a MenuBar. This is on purpose, as I don't want one.
Problem
The issue here is that no matter what, the application won't close:

It always reopens.
After checking the code of Desktop, I believe the issue could be in  Desktop.Window:
def init(options) do
    window_title = options[:title] || Atom.to_string(options[:id])
    size = options[:size] || {600, 500}
    min_size = options[:min_size]
    app = options[:app]
    icon = options[:icon]
    taskbar_icon = options[:taskbar_icon]
    # not supported on mobile atm
    menubar = unless OS.mobile?(), do: options[:menubar]

Namely, I am lead to believe there is a difference for Mobile apps and normal apps.
Funnily enough, if add a MenuBar, then the application does eventually close, even though it takes forever for the process behind it to terminate:
{Desktop.Window,
       [
         app: :web_interface,
         id: WebInterface,
         title: "Market Manager",
         size: WindowUtils.calculate_window_size(0.4, 0.7),
         menubar: MenuBar,
         icon: "static/images/resized_logo_5_32x32.png",
         url: &WebInterface.Endpoint.url/0
       ]}

Cliking on the Menubar Quit option also closes the application.
Questions
Am I forced to have a Menubar, if my I have a Desktop app?
How can this be fixed?

After some more digging with the help of the forum community, we were able to pinpoint some differences between using the Menu -> Quit option and closing the window via the X button.
Summarizing the words of better people (https://elixirforum.com/t/desktop-app-does-not-close-and-always-reopens/56585/2?u=fl4m3ph03n1x):

the “Quit” menu item ends up calling Window.quit/0 2, which ultimately kill -9s the BEAM from outside (!!).

I have some questions about this code:
  def shutdown() do
    spawn(&halt/0)
  end

  @spec halt() :: no_return()
  defp halt() do
    Process.sleep(300)

    # With System.stop(0) shutdown of the WebView takes
    # a very long time (10+ seconds), and wxWidgets cleanup
    # often crashes on macOS
    # System.stop(0)

    kill_heart()
    System.halt(0)
  end

Why do we need to spawn a process ? The process will kill everything anyway, why not have the father do it?
If System.stop crashes on MacOS (and only on macOS), can't we make a check for the OS and use System.stop to cleanly shutdown Windows, Linux and Android?

the “close window” icon ends up calling Window.close_window/2 2 which returns {:stop, :normal, ui} - which will result in the parent Supervisor restarting the Window process.

This is consistent with my findings:
  def close_window(wx(userData: pid), inev) do
    IO.puts("USER PRESSED  'X'")
    # if we don't veto vetoable events on MacOS the app freezes.
    if :wxCloseEvent.canVeto(inev) do
      :wxCloseEvent.veto(inev)
    end

    GenServer.cast(pid, :close_window)
    :ok
  end

  @doc false
  def handle_cast(:close_window, ui = %Window{frame: frame, taskbar: taskbar}) do
    IO.puts("RECEIVER CLOSE_WINDOW EVENT")

    if not :wxFrame.isShown(frame) do
      IO.puts("SHUTTING DOWN OS")
      OS.shutdown()
    end

    IO.puts("OS SHUTDOWN AVOIDED")
    IO.inspect(taskbar, label: "TASKBAR")
    if taskbar == nil do
      :wxFrame.hide(frame)
      {:stop, :normal, ui}
    else
      :wxFrame.hide(frame)
      {:noreply, ui}
    end
  end

Will result in the log:
iex(5)> USER PRESSED  'X'
iex(5)> RECEIVER CLOSE_WINDOW EVENT
iex(5)> OS SHUTDOWN AVOIDED
iex(5)> TASKBAR: nil

Furthermore, I can confirm that setting the restart strategy to :transient solves the issue:
%{
        id: Desktop.Window,
        start: {Desktop.Window, :start_link, [[
          app: :web_interface,
          id: WebInterface,
          title: "Market Manager",
          size: WindowUtils.calculate_window_size(0.4, 0.8),
          menubar: MenuBar,
          icon: "static/images/resized_logo_5_32x32.png",
          url: fn -> "#{WebInterface.Endpoint.url()}/#{@landing_page}" end
        ]]},
        restart: :transient,
        shutdown: 5_000
      }

However, this raises some questions for me:

Why are we skipping the OS.shutdown() call? Should the if expression not be reversed?
If the code is correct as is, is setting the restart strategy to transient the only solution? (If yes, we should probably make this more user friendly).

def shutdown() do
spawn(&halt/0)
end
@spec halt() :: no_return()
defp halt() do
Process.sleep(300)
# With System.stop(0) shutdown of the WebView takes
# a very long time (10+ seconds), and wxWidgets cleanup
# often crashes on macOS
# System.stop(0)

kill_heart()
System.halt(0)

end

Yeah as mentioned both - Windows and MacOS have problems here. On Windows for some reason the shutdown can take anywhere from 10 - 60 seconds. Which is really unfortunately especially if what we want to achieve is a quick App restart. That was ultimately the reason to introduce this hard kill here.
Both issues 1) the MacOS crash 2) the Window slow shutdown, seem to be underlying issues in wxWidgets and with a newer version these might go away -- This code is built based on experience with wxWidgets 3.1.6

However, this raises some questions for me:
* Why are we skipping the `OS.shutdown()` call? Shouldn't the `if not :wxFrame.isShown(frame) do` expression be reversed?

This is working around a macOS peculiarity and I missed documenting that in the code. On macOS there is no way to differentiate between the window close event here or the application close event (when you want to shutdown your mac for example) -- So this code assumes that if there is a "close_window" event coming in while the window is not actually show then => it must be actually an application close event (because the mac shuts down, or the os is asking the app to quit). Again on windows this code should not have any relevance - if it does that was not intended.

* If the code is correct as is, is setting the restart strategy to transient the only solution? (If yes, we should probably make this more user friendly).

In addition to all of this, using the Menu -> Quit option will kill everything, including the terminal session, why pressing the X button will leave the terminal session open, even though the window is closed.

My primary use case involves always a taskbar icon and a single long lived window. When writing the taskbar == nil branch I thought there could be many different strategies for windows management. Such as keeping multiple windows around. But now I think you're right and we could simplify this to just call OS.shutdown() in the taskbar == nil branch as well. If users really want to create multi-window apps that could be it's own flag in the future.
if taskbar == nil do
   OS.shutdown()
else

Both issues 1) the MacOS crash 2) the Window slow shutdown, seem to be underlying issues in wxWidgets and with a newer version these might go away -- This code is built based on experience with wxWidgets 3.1.6

Would it be feasable to update to wxWidgets <IP_ADDRESS> Released ?

I'm definitely curious about experience with that newer version. Would really like to offer prebuilt binaries with newer wxWidgets to make shipping easier.

I really want to use this library, but not being able to shutdown the app is kind of a deal-breaker. Is there no workaround?

@dpurrington the workaround is explained in the ticket I created.
If you do manage to use the latest version of wxWidgets, let us know how it goes. And also, please detail how you did it, as I am fairly curious.

Hey, I think I just figured this out. You don't put the window under a supervisor. Just call start_link. When you close the window, the whole process is taken down.


[BUG] clang-tools-extra tools not showing up in C

When you select C++ as the source language and Clang as the compiler, the Add Tool menu includes tools like clang-tidy, clang-format, and clang-query. However, when you select C as the source language and Clang as the compiler, these tools are not available under the Add Tool menu.
It would be useful to provide the tools in C mode as well, as all of them work in C mode.

Thanks for the heads up and taking the time to report it to us! I've added all three you mentioned now and they'll show up on the next site update :)


count of divisors added

Have you read the Contributing Guidelines on Pull Requests?
Yes
Description
article on count of divisors added
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
#83

Please review @ankitaggarwal23 @HarshCasper @iamrajiv @atarax665

Requested changes done @HarshCasper @ankitaggarwal23 @iamrajiv


Remove old logs based on a maximum number of files

Hi @feugy
I don't believe removing old logs is currently supported, right? I think you mentioned it in an earlier comment.
Not really sure what is the best way to implement this, but I figured I would create this issue to keep it on the radar.

Hi @feugy, do you need help implementing that ?
Since you already mentioned it, do you have some hints on how to implement it properly ?

Hello folks, apologies for the long silence.
This is an handy feature indeed. @burgerni10 I'll give it a try today, but in case you're faster than me, a possible plan would be to:

maintain (in memory) the current number of log files.
on log rotation (scheduleRoll() function), asynchronously trigger a file deletion, if needed (we don't want to delay the rotation with deleting a file)
on startup, when this feature is enabled, count the number of log file (possibly asynchronously as weel, it sounds a acceptable compromise)

Hello gents.
Let me amend my thinking here.
Removing old log files means crawling files in the same folder, count them, order them by something (file name, or access date), then remove some. It's raising some questions around identifying older log files (matching the same file name pattern? all of them?)
It could lead to some undesirable, catastrophic behavior: configure a limit of 1, start you app in a folder full of old log files, and they are all gone.
Limiting the number of created files is simpler and safer to reason about: during the same execution, pino-roll limits the number of created file, and simply ignores what was in the folder before.
In my opinion, this allows the same level of control, without the risk of removing other files.
This is implemented in #38: limit.count is a new parameter (we can imagine limit by age or size as well)
Is that acceptable?

Hi @feugy, thank you for the investigation.
Your solution has the drawback of having unlimited files in case of application restart: if limit.count is set to 10, and the app restart at count equals to 9, it will keep indefinitely these files on disk. Other restarts in the future will increase the number of files on the disk indefinitely.
I suggest reading the folder that match the following regex: file[0-9].*\.log where log is the extension, and file is the filename.
Let's suppose 3 files are in the folder:

file1.log (size 20 MB, modified 20min ago)
file2.log (size 10 MB, modified 2min ago)
file3.log (size 20 MB, modified 40min ago)

And pino-roll set up with
"options": {
  "file": "file",
  "size": 20,
  "limit": { "count": 3}
}

The most recent file is file2.log and its size is inferior to the size option. Thus, it will be reopen by the logger at startup.
When file2.log is full, file3.log will be removed and open a new. I suggest to overwrite an old file at new file creation only.
When the new file3.log will be full, since limit.count is set to 3, next file to be overwritten will be file1.log
This way, we limit the number of file on disk by design and we do not remove old logs at startup.
The only way to keep a file on disk indefinitely is to reduce the limit.count from 3 to 2 for example when a file3.log has already been created. This seems more acceptable to me.
What do you think ?

the risk of messing up with existing files (which is mitigated with applying file name filtering as you suggested)

I agree there is a risk, but I think the risk is acceptable since it will depend on a filename that must be set by the user.

my "vision" of pino-roll, compared to existing system tools like logrotate. Fundamentally, pino-roll is an handy tool for development, prototyping and experimenting services. If one need something bullet-proof and production-grade, stdout + logrotate is the way to go.

I didn't have the vision at first, but I get it now :)
The use of logrotate for production-grade totally makes sense. However, the logger may be embedded in a cross-platform NodeJS app (that is my use case).  In such cases, using logrotate implies to depend of an external tool (especially for Windows).
I think having a logrotate logic embedded in pino-roll makes sense in order to have an all-included feature, as it is done in winston. Maybe I am mistaking, but I think pino-roll is not far from having such a feature (which I can help to develop of course), and it would be a shame to develop a similar transport for that.

Hi @feugy , any thoughts on my last comments ?

Hello! I'm in agreement with @burgerni10 - I can see the concerns that you have @feugy, but I think that there's definitely a separate use-case here, and that perhaps it'd be reasonable to support both deleting pre-existing files, or starting fresh on new runs. I'm also working with an embedded application which is running on the user's own machine, pino-roll is almost perfect for it, particularly as I cannot use other logging libraries due to separate constraints. I really need to ensure I'm not filling up their filesystem over time, while also enabling them to send the most recent logfiles to me in case of application error.

Can we make this configurable? Like one can set a flag on/off to control the removal of existing files on application restart.

@bkvishe sure, would you like to send a PR?

Sure. I Will give it a try.


Is the default CIDR block usable?

Unless I'm mistaken, per http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html#VPC_Sizing,
<IP_ADDRESS>/16 is not an allocatable private CIDR block.

I actually use <IP_ADDRESS>/16 from time to time and it seems to work fine. Maybe there are problems only when you get into conflict with some specific service or something like that. Anyway, I'm going to change the defaults to <IP_ADDRESS>/16 which should be valid.


DeepOmit makes everything optional

I presume that this is not the intended behaviour?

@cyberbiont which version are you on? We recently had some fixed about this.

And what TS version?
locally trying this with latest of both I get this type output:
type OmittedInCfgResult = {} & Pick<{}, never> & {
    b: number;
    c: number;
} & Pick<{
    a: never;
    d: {} & Pick<{}, never> & {
        bar: string;
    } & Pick<{
        foo: never;
    }, never>;
}, "d">

Mistery solved
The ts file I was testing this in was outside my src directory, which contains my main tsconfig fie (I use project references')
I move it there and now it works as it should.
Don't know what why exactly it matters, but it does.

Thanks for figuring it out guys.


Adjust output ranges by 16bytes when headered rom is detected

I prefer using natural ranges from headerless data when making db entries. (i.e. 8000 to 8fff rather than 8010 to 900f) This means that when a headered rom is fed, the program needs to detect that and adjust the range so that the output will be correct.

Done


fix(api): distribution

What kind of change does this PR introduce? (check at least one)

[x] Bugfix
[ ] Feature
[ ] New Binding Issue #___
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change? (check one)

[ ] Yes. Issue #___
[ ] No

The PR fulfills these requirements:

[ ] When resolving a specific issue, it's referenced in the PR's title (e.g. fix: #xxx[,#xxx], where "xxx" is the issue number)
[x] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.

If adding a new feature, the PR's description includes:

[ ] A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)

Other information:

Don't we have to ship the typings? And can we please ship the .ts as well?

Don't we have to ship the typings? And can we please ship the .ts as well?

We are shipping the typings on the dist folder. I'll copy the ts files.


match delta-rs to avoid an error

Get following error when load a table with a lot log files (more than 1000), but the same issue doesn't occur on delta-rs, after some troubleshooting, the error can be fixed by add this line from delta-rs
https://github.com/delta-io/delta-rs/blob/main/crates/core/src/kernel/snapshot/log_segment.rs#L98
ObjectStore(
    Generic {
        store: "S3",
        source: ListRequest {
            source: Client {
                status: 400,
                body: Some(
                    "<?xml version='1.0' encoding='UTF-8'?><Error>InvalidArgument<Message>Bad Request</Message><RequestId>4442587FB7D0A2F9</RequestId></Error>",
                ),
            },
        },
    },
)

Hi @zachschuermann ,
We have to use s3proxy in your environment,  s3proxy require that continuation-token and start-after cannot be both set
https://github.com/gaul/s3proxy/blob/4976e170c3c068275201a79d329f953f685fb808/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java#L1389C17-L1389C35
delta-kernel-rs will set start-after
https://github.com/delta-incubator/delta-kernel-rs/blob/main/kernel/src/snapshot.rs#L367
but when there are more than 1000 items, continuation-token will be set automatically and s3proxy will return error.
https://github.com/apache/arrow-rs/blob/3e02689e3464bc8cf929a0d116888fb6f59999fa/object_store/src/aws/client.rs#L726

Ah great, thanks for the context. So, put another way, attempting to list > 1000 items isn't supported for ObjectStore on S3 with s3proxy? Is that a known issue?

(the fix here is a useful optimization but more of a workaround for the underlying issue in ObjectStore/S3proxy it seems)

Hi @mervynhang if we modify the golden_tables tests (in my comment above) we should be good to go!

Hi @zachschuermann  golden_tables tests has been updated, please let me know if anything else is needed. Thanks

could we update the PR description to reflect the changes being made? feel free to keep the original context but add something like:
previously, if read_last_checkpoint returned a valid _last_checkpoint hint but the version requested was None (i.e. requesting the lastest version) we would still list_log_files without listing from the checkpoint hint. This change will detect when we have a valid _last_checkpoint and request the latest version and instead list_log_files_with_checkpoint

Hi @zachschuermann , PR description updated. Thanks


fix string formatting for py26 compatibility

Fix string formatting to not use zero length field names; with this, the plugin now works under py26.

Nice, thanks!


Make sure clustered sessions work well with HazelcastClusterManager

@vietj please review

@vietj ping :)

looks good to me


condense compactionGroups code

Required for all non-trivial PRs

[x] Rebased/mergable
[x] Tests pass
[ ] CHANGELOG.md updated
[x] Sign CLA (if not already signed)

Closing this PR as it changes the compaction functionality.


NoSuchFile: [ONNXRuntimeError] : 3 : NO_SUCHFILE : Load model from data/data_onnx/model.onnx failed:Load model data/data_onnx/model.onnx failed. File doesn't exist

System Info
onnx==1.15.0
onnxruntime==1.16.3
optimum==1.17.1

Who can help?
No response
Information

[X] The official example scripts
[ ] My own modified scripts

Tasks

[X] An officially supported task in the examples folder (such as GLUE/SQuAD, ...)
[ ] My own task or dataset (give details below)

Reproduction (minimal, reproducible, runnable)
I had converted my pytorch model to onnx and stored in the given path
/data/data_onnx
Inside the data_onnx folder, there exist the model.onnx file
then I tried to load it using
from onnxruntime import InferenceSession
session = InferenceSession("data/onnx_model/model.onnx")

but it shows the given error
NoSuchFile: [ONNXRuntimeError] : 3 : NO_SUCHFILE : Load model from data/data_onnx/model.onnx failed:Load model data/data_onnx/model.onnx failed. File doesn't exist

Expected behavior
I had converted my pytorch model to onnx and stored in the given path
/data/data_onnx
Inside the data_onnx folder, there exist the model.onnx file
then I tried to load it using
from onnxruntime import InferenceSession
session = InferenceSession("data/onnx_model/model.onnx")

but it shows the given error
NoSuchFile: [ONNXRuntimeError] : 3 : NO_SUCHFILE : Load model from data/data_onnx/model.onnx failed:Load model data/data_onnx/model.onnx failed. File doesn't exist

Hi @pradeepdev-1995 how is this related to optimum?
You can try to use an absolute path instead of a relative path for your model.onnx file.


Icon not being used for title bar on Windows

Azure Data Studio Version: 1.6.0 (user setup)
OS: Windows 10 Build 17763

See image below showing my title bar.

I've seen this a couple times, but only in dev environments so far.  I am not sure why sometimes Windows uses the default EXE icon.  Unfortunately application title bar icons are cached by Windows and can only be refreshed by clearing the Windows icon cache (e.g. https://www.thewindowsclub.com/rebuild-icon-clear-thumbnail-cache-windows-10).

I followed the instructions on that page to rebuild icon cache in Windows 10, but it did not fix my issue.

Updating to v1.8.0 seems to have fixed this.


Should F be ExceptT MultipleErrors (Eff (foreign :: FOREIGN | eff)) a?

Considering many foreign properties are mutable or can have arbitrary side-effects through getters. Or maybe Foreign should be considered "unsafe" in general?

This would be addressed by https://github.com/purescript/purescript-foreign/pull/74, right?

I think that in practice Foreign is mostly used for parsing JSON, in which case there's no need to add effects and so this would be a rather awkward breaking change if we were switch the definition of F to be built on top of Effect rather than Identity. However, adding the transformer seems like a good way to allow people to opt in to having the stack be built on top of Effect rather than Identity, so I think we can consider it fixed by #74. I also think that if properties are mutable or have arbitrary side-effects, then it's probably more the user's responsibility to give them the appropriate types while reading them from Foreign.


fontName not properly set

Hi!
I'm using your calendar and I was attempting to change the fontName and it wasn't updating to the font that I wanted. After taking a look at your implementation file, I notice that you use kCalenderViewDefaultFont instead of the fontName property. Do you mind if I make a pull request and fix this change?
By the way, I also plan on doing some more UI updates in the future if you're okay with that! Things like highlighting the week, etc.
Thanks!
Vivian Santos

Hi,
Ok, I will confirm your fixes or improvements. Feel free. Thank you.


Removed link on a name of team members

👷 Deploy Preview for balkantransport processing.
🔨 Explore the source changes: b4cb86f60609c59f652669486ceff4023d4957a2
🔍 Inspect the deploy log: https://app.netlify.com/sites/balkantransport/deploys/6124a5ab1fdcf300082129a1


Add handling for prefetching onTouchStart 📱

This adds handling for prefetching onTouchStart as this gives a little more time to start parsing required scripts for a page transition if not already done that can help make the transition faster.
Inspired from-: https://github.com/vercel/next.js/pull/38805

Done 🤝

For additional references -: https://instant.page/#:~:text=in the world.-,On mobile,-A user starts

thanks, makes sense to me 👍 I thought it was already optimized 😅


Preparing for release 3.6.2

Updates CHANGELOG and VERSION.

Coverage remained the same at 99.253% when pulling 9b772efc0100bd078c9d630c71735aec8a719a35 on nrabinowitz:release-3.6.2 into d4c824909be06a26764a6b42b7844b5fc9c3bd47 on uber:master.


ImportError: No module named fastlmm.feature_selection

Hi,
I am trying to get my head around how to use FaST-LMM. Starting with a simple test (located in fastlmm/feature_selection, and typing python test.py
I get the error named in the title. FYI, I used pip in order to install fastlmm.

Sorry for


There are some issues

Thank you very much for creating this package.
I am trying to use this and found some issues, like:
1.  can create links but no unlinks. (can use Clear to unlink)
2. create multiple editors, click fullscreen always opens the fullscreen of the last editor.
3. I want to style the dialogs, for example ImageDialog but there is no way. Is it possible to add classes to dialogs (ImageDialog, LinkDialog, VideoDialog, ...) for easy styling?
My version: 2.3.0

:tada: This issue has been resolved in version 2.4.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Xcode 10.2 and swift 5 support

Travis is failing because it doesn't have 11.4 simulators, merging anyway.


Append exceptions properly to make root cause analysis easier

See http://chat.stackoverflow.com/transcript/message/37677416#37677416. This should forward the exception when cancelling the pending jobs inside kill().

Done via https://github.com/amphp/parallel/commit/20bb51e926b01b42da52c320da5d37971f0067f5.


Missing EntityFrameworkCore key persistence

The documentation doesn't mention EntityFrameworkCore key persistence: https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.dataprotection.entityframeworkcoredataprotectionextensions.persistkeystodbcontext?view=aspnetcore-5.0#Microsoft_AspNetCore_DataProtection_EntityFrameworkCoreDataProtectionExtensions_PersistKeysToDbContext__1_Microsoft_AspNetCore_DataProtection_IDataProtectionBuilder_

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

ID: b63ab082-ad30-b00d-ecd1-ca88eee1659e
Version Independent ID: 69818122-e47a-3fed-ea37-8009f66e2a5c
Content: Configure ASP.NET Core Data Protection
Content Source: aspnetcore/security/data-protection/configuration/overview.md
Product: aspnet-core
Technology: aspnetcore-security
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

@paulomorgado  would you be able to start a PR? I can edit.  @ajaybhargavb and @markmcgookin can you help?
@blowdart cc.

PR #22003 Created to cover this.


refactor: simplify the mutator run in the correct folder test

Proposed changes
I'm not satisfied with the test I made in #171. Following the  #172 discussion, I'm opening this PR that aims to ease that test. 🤓
Types of changes

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update (if none of the other choices apply)

Checklist

[x] I have read the CONTRIBUTING doc
[x] Lint and unit tests pass locally with my changes (make all)
[x] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules

Further comments
Feel free to propose changes I haven't thought about 😄

Thanks for the great job!


dashboard/config: add chromeos-5.10 support

To add the ChromeOS 5.10 support.

Please add the config itself as well.
It's useful to commit stock config first:
https://github.com/google/syzkaller/commit/9e17e0cd2c1c11023201de3c60257815d5775dc6#diff-06d986602d36289612eb80d5051e54bfb56ac4ffc42a75ff5fb400fd99a49073
and then our changes on top as a separate commit so that it's visible what has changed:
https://github.com/google/syzkaller/commit/76b4dcc777ca842ee42225411c5c9d5ac3e91b8a#diff-06d986602d36289612eb80d5051e54bfb56ac4ffc42a75ff5fb400fd99a49073

@dvyukov , done.
Currently is it just a copy of the 5.4 settings.


Odd failure of sct_check_dependencies if DISPLAY is not set.

When testing
Second attempt to plot ...

Overwriting environment variable $MPLBACKEND=agg
[FAIL]
(<type 'exceptions.RuntimeError'>, RuntimeError(u'Invalid DISPLAY variable',), <traceback object at 0x7f2a45241b90>)

I have tested the SCT docker version for win 10.
I had an error when running check dependencies.
Link to complete log here: https://pastebin.com/sRQHhVky
In addition, I have launched the batch_single_subject and there are a series of functions that fail due to DISPLAY. Example here: https://pastebin.com/0j87b25x

@alexfoias i noticed you used sct-v4.0.0-beta.0. Could you please try with the latest (master) version? I think we addressed the MPLBACKEND in more recent releases.

@jcohenadad I followed the installation info listed here
I cannot see any new tags other than sct-v4.0.0-beta.0 on docker.  I also check using the command listed here
Is there a different way of pulling the latest sct using docker (I think I could clone the repo under the docker ubuntu 18.04 machine, but that won't follow the current documentation).

@alexfoias could you please generate and upload the beta5 to docker hub?

I tried to generate docker for beta5 from joplin but I have an error.

Welcome to the SCT installer!

SCT version ......... 4.0.0-beta.5
Installation type ... package
Operating system .... linux
Shell ............... /home/sct/.bashrc
sudo mode ........... 0

To improve user experience and fix bugs, the SCT development team is using a
report system to automatically receive crash reports and errors from users.
These reports are anonymous.
--> Crash reports will be sent to the SCT development team. Thank you!

SCT will be installed here: [/home/sct/sct_4.0.0-beta.5]
Do you agree? [y]es/[n]o:
Copying source files from /home/sct/spinalcordtoolbox-4.0.0-beta.5 to /home/sct/sct_4.0.0-beta.5
....................................................................................................................................................................................................................................................................................................................................................................................................
Installing conda...
>> rm -rf /home/sct/sct_4.0.0-beta.5/python
>> mkdir -p /home/sct/sct_4.0.0-beta.5/python
>> wget -O /tmp/tmp.D7yiKGOCs5/miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
--2019-07-23 15:14:53--  https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
Resolving repo.continuum.io (repo.continuum.io)... <IP_ADDRESS>, <IP_ADDRESS>, 2606:4700::6812:c94f, ...
Connecting to repo.continuum.io (repo.continuum.io)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 70348401 (67M) [application/x-sh]
Saving to: '/tmp/tmp.D7yiKGOCs5/miniconda.sh'

2019-07-23 15:14:53 (111 MB/s) - '/tmp/tmp.D7yiKGOCs5/miniconda.sh' saved [70348401/70348401]

exit status is 0
>> bash /tmp/tmp.D7yiKGOCs5/miniconda.sh -p /home/sct/sct_4.0.0-beta.5/python -b -f
PREFIX=/home/sct/sct_4.0.0-beta.5/python
reinstalling: python-3.7.3-h0371630_0 ...
using -f (force) option
Python 3.7.3
reinstalling: ca-certificates-2019.1.23-0 ...
using -f (force) option
reinstalling: libgcc-ng-8.2.0-hdf63c60_1 ...
using -f (force) option
reinstalling: libstdcxx-ng-8.2.0-hdf63c60_1 ...
using -f (force) option
reinstalling: libffi-3.2.1-hd88cf55_4 ...
using -f (force) option
reinstalling: ncurses-6.1-he6710b0_1 ...
using -f (force) option
reinstalling: openssl-1.1.1b-h7b6447c_1 ...
using -f (force) option
reinstalling: xz-5.2.4-h14c3975_4 ...
using -f (force) option
reinstalling: yaml-0.1.7-had09818_2 ...
using -f (force) option
reinstalling: zlib-1.2.11-h7b6447c_3 ...
using -f (force) option
reinstalling: libedit-3.1.20181209-hc058e9b_0 ...
using -f (force) option
reinstalling: readline-7.0-h7b6447c_5 ...
using -f (force) option
reinstalling: tk-8.6.8-hbc83047_0 ...
using -f (force) option
reinstalling: sqlite-3.27.2-h7b6447c_0 ...
using -f (force) option
reinstalling: asn1crypto-0.24.0-py37_0 ...
using -f (force) option
reinstalling: certifi-2019.3.9-py37_0 ...
using -f (force) option
reinstalling: chardet-3.0.4-py37_1 ...
using -f (force) option
reinstalling: idna-2.8-py37_0 ...
using -f (force) option
reinstalling: pycosat-0.6.3-py37h14c3975_0 ...
using -f (force) option
reinstalling: pycparser-2.19-py37_0 ...
using -f (force) option
reinstalling: pysocks-1.6.8-py37_0 ...
using -f (force) option
reinstalling: ruamel_yaml-0.15.46-py37h14c3975_0 ...
using -f (force) option
reinstalling: six-1.12.0-py37_0 ...
using -f (force) option
reinstalling: cffi-1.12.2-py37h2e261b9_1 ...
using -f (force) option
reinstalling: setuptools-41.0.0-py37_0 ...
using -f (force) option
reinstalling: cryptography-2.6.1-py37h1ba5d50_0 ...
using -f (force) option
reinstalling: wheel-0.33.1-py37_0 ...
using -f (force) option
reinstalling: pip-19.0.3-py37_0 ...
using -f (force) option
reinstalling: pyopenssl-19.0.0-py37_0 ...
using -f (force) option
reinstalling: urllib3-1.24.1-py37_0 ...
using -f (force) option
reinstalling: requests-2.21.0-py37_0 ...
using -f (force) option
reinstalling: conda-4.6.14-py37_0 ...
using -f (force) option
using -f (force) option
installation finished.
Conda installation successful
Collecting package metadata: ...working... done
Solving environment: ...working... done

## Package Plan ##

  environment location: /home/sct/sct_4.0.0-beta.5/python/envs/venv_sct

  added / updated specs:
    - python=3.6

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    _libgcc_mutex-0.1          |             main           3 KB
    ca-certificates-2019.5.15  |                0         133 KB
    certifi-2019.6.16          |           py36_0         154 KB
    libgcc-ng-9.1.0            |       hdf63c60_0         8.1 MB
    libstdcxx-ng-9.1.0         |       hdf63c60_0         4.0 MB
    openssl-1.1.1c             |       h7b6447c_1         3.8 MB
    pip-19.1.1                 |           py36_0         1.9 MB
    python-3.6.8               |       h0371630_0        34.4 MB
    setuptools-41.0.1          |           py36_0         656 KB
    sqlite-3.29.0              |       h7b6447c_0         1.9 MB
    wheel-0.33.4               |           py36_0          40 KB
    ------------------------------------------------------------
                                           Total:        55.1 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main
  ca-certificates    pkgs/main/linux-64::ca-certificates-2019.5.15-0
  certifi            pkgs/main/linux-64::certifi-2019.6.16-py36_0
  libedit            pkgs/main/linux-64::libedit-3.1.20181209-hc058e9b_0
  libffi             pkgs/main/linux-64::libffi-3.2.1-hd88cf55_4
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-9.1.0-hdf63c60_0
  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-9.1.0-hdf63c60_0
  ncurses            pkgs/main/linux-64::ncurses-6.1-he6710b0_1
  openssl            pkgs/main/linux-64::openssl-1.1.1c-h7b6447c_1
  pip                pkgs/main/linux-64::pip-19.1.1-py36_0
  python             pkgs/main/linux-64::python-3.6.8-h0371630_0
  readline           pkgs/main/linux-64::readline-7.0-h7b6447c_5
  setuptools         pkgs/main/linux-64::setuptools-41.0.1-py36_0
  sqlite             pkgs/main/linux-64::sqlite-3.29.0-h7b6447c_0
  tk                 pkgs/main/linux-64::tk-8.6.8-hbc83047_0
  wheel              pkgs/main/linux-64::wheel-0.33.4-py36_0
  xz                 pkgs/main/linux-64::xz-5.2.4-h14c3975_4
  zlib               pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3

Proceed ([y]/n)?

Downloading and Extracting Packages
openssl-1.1.1c       | 3.8 MB    | ########## | 100%
setuptools-41.0.1    | 656 KB    | ########## | 100%
certifi-2019.6.16    | 154 KB    | ########## | 100%
libgcc-ng-9.1.0      | 8.1 MB    | ########## | 100%
sqlite-3.29.0        | 1.9 MB    | ########## | 100%
_libgcc_mutex-0.1    | 3 KB      | ########## | 100%
libstdcxx-ng-9.1.0   | 4.0 MB    | ########## | 100%
wheel-0.33.4         | 40 KB     | ########## | 100%
ca-certificates-2019 | 133 KB    | ########## | 100%
python-3.6.8         | 34.4 MB   | ########## | 100%
pip-19.1.1           | 1.9 MB    | ########## | 100%
Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... done

==> WARNING: A newer version of conda exists. <==
  current version: 4.6.14
  latest version: 4.7.10

Please update conda by running

    $ conda update -n base -c defaults conda

#
# To activate this environment, use:
# > conda activate venv_sct
#
# To deactivate an active environment, use:
# > conda deactivate
#

Installing Python dependencies...
Collecting numpy
  Downloading https://files.pythonhosted.org/packages/87/2d/e4656149cbadd3a8a0369fcd1a9c7d61cc7b87b3903b85389c70c989a696/numpy-1.16.4-cp36-cp36m-manylinux1_x86_64.whl (17.3MB)
Installing collected packages: numpy
Successfully installed numpy-1.16.4
Requirement already satisfied: numpy in ./python/envs/venv_sct/lib/python3.6/site-packages (from -r requirements.txt (line 1)) (1.16.4)
Collecting cryptography (from -r requirements.txt (line 2))
  Downloading https://files.pythonhosted.org/packages/97/18/c6557f63a6abde34707196fb2cad1c6dc0dbff25a200d5044922496668a4/cryptography-2.7-cp34-abi3-manylinux1_x86_64.whl (2.3MB)
Collecting dipy (from -r requirements.txt (line 3))
  Downloading https://files.pythonhosted.org/packages/55/3f/3d99c1b5066e05a8f26f5361aadcf2c42fa86590461ddf37be4c76187883/dipy-0.16.0-cp36-cp36m-manylinux1_x86_64.whl (7.9MB)
Collecting futures (from -r requirements.txt (line 4))
  Downloading https://files.pythonhosted.org/packages/cc/26/b61e3a4eb50653e8a7339d84eeaa46d1e93b92951978873c220ae64d0733/futures-3.1.1.tar.gz
Collecting h5py (from -r requirements.txt (line 5))
  Downloading https://files.pythonhosted.org/packages/30/99/d7d4fbf2d02bb30fb76179911a250074b55b852d34e98dd452a9f394ac06/h5py-2.9.0-cp36-cp36m-manylinux1_x86_64.whl (2.8MB)
Collecting Keras (from -r requirements.txt (line 6))
  Downloading https://files.pythonhosted.org/packages/5e/10/aa32dad071ce52b5502266b5c659451cfd6ffcbf14e6c8c4f16c0ff5aaab/Keras-2.2.4-py2.py3-none-any.whl (312kB)
Collecting matplotlib (from -r requirements.txt (line 7))
  Downloading https://files.pythonhosted.org/packages/57/4f/dd381ecf6c6ab9bcdaa8ea912e866dedc6e696756156d8ecc087e20817e2/matplotlib-3.1.1-cp36-cp36m-manylinux1_x86_64.whl (13.1MB)
Collecting nibabel (from -r requirements.txt (line 8))
  Downloading https://files.pythonhosted.org/packages/66/30/fbed62172920c3fd050b6483541546a87c5e735f4a0ef03f08bb150680b4/nibabel-2.4.1-py2.py3-none-any.whl (3.3MB)
Collecting pandas (from -r requirements.txt (line 9))
  Downloading https://files.pythonhosted.org/packages/1d/9a/7eb9952f4b4d73fbd75ad1d5d6112f407e695957444cb695cbb3cdab918a/pandas-0.25.0-cp36-cp36m-manylinux1_x86_64.whl (10.5MB)
Collecting psutil (from -r requirements.txt (line 10))
  Downloading https://files.pythonhosted.org/packages/1c/ca/5b8c1fe032a458c2c4bcbe509d1401dca9dda35c7fc46b36bb81c2834740/psutil-5.6.3.tar.gz (435kB)
Collecting pyqt5 (from -r requirements.txt (line 11))
  Downloading https://files.pythonhosted.org/packages/85/bd/8a0c863802449f35ad9ca21a1b73190639c206758b4b5e2425617fc99ce9/PyQt5-5.13.0-5.13.0-cp35.cp36.cp37.cp38-abi3-manylinux1_x86_64.whl (62.1MB)
Collecting raven (from -r requirements.txt (line 12))
  Downloading https://files.pythonhosted.org/packages/bd/8e/62e26a88c0a1bbae677200baf0767c1022321a6555634f8129e6d55c5ddc/raven-6.10.0-py2.py3-none-any.whl (284kB)
Collecting requests (from -r requirements.txt (line 13))
  Downloading https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB)
Collecting scipy (from -r requirements.txt (line 14))
  Downloading https://files.pythonhosted.org/packages/72/4c/5f81e7264b0a7a8bd570810f48cd346ba36faedbd2ba255c873ad556de76/scipy-1.3.0-cp36-cp36m-manylinux1_x86_64.whl (25.2MB)
Collecting scikit-image (from -r requirements.txt (line 15))
  Downloading https://files.pythonhosted.org/packages/d4/ab/674e168bf7d0bc597218b3bec858d02c23fbac9ec1fec9cad878c6cee95f/scikit_image-0.15.0-cp36-cp36m-manylinux1_x86_64.whl (26.3MB)
Collecting scikit-learn (from -r requirements.txt (line 16))
  Downloading https://files.pythonhosted.org/packages/85/04/49633f490f726da6e454fddc8e938bbb5bfed2001681118d3814c219b723/scikit_learn-0.21.2-cp36-cp36m-manylinux1_x86_64.whl (6.7MB)
Collecting tensorflow (from -r requirements.txt (line 17))
  Downloading https://files.pythonhosted.org/packages/de/f0/96fb2e0412ae9692dbf400e5b04432885f677ad6241c088ccc5fe7724d69/tensorflow-1.14.0-cp36-cp36m-manylinux1_x86_64.whl (109.2MB)
Collecting xlrd (from -r requirements.txt (line 18))
  Downloading https://files.pythonhosted.org/packages/b0/16/63576a1a001752e34bf8ea62e367997530dc553b689356b9879339cf45a4/xlrd-1.2.0-py2.py3-none-any.whl (103kB)
Collecting xlutils (from -r requirements.txt (line 19))
  Downloading https://files.pythonhosted.org/packages/c7/55/e22ac73dbb316cabb5db28bef6c87044a95914f713a6e81b593f8a0d2f79/xlutils-2.0.0-py2.py3-none-any.whl (55kB)
Collecting xlwt (from -r requirements.txt (line 20))
  Downloading https://files.pythonhosted.org/packages/44/48/def306413b25c3d01753603b1a222a011b8621aed27cd7f89cbc27e6b0f4/xlwt-1.3.0-py2.py3-none-any.whl (99kB)
Collecting tqdm (from -r requirements.txt (line 21))
  Downloading https://files.pythonhosted.org/packages/9f/3d/7a6b68b631d2ab54975f3a4863f3c4e9b26445353264ef01f465dc9b0208/tqdm-4.32.2-py2.py3-none-any.whl (50kB)
Collecting transforms3d (from -r requirements.txt (line 22))
  Downloading https://files.pythonhosted.org/packages/b5/f7/e85809168a548a854d7c1331560c27b4f5381698d29c12e57759192b2bc1/transforms3d-0.3.1.tar.gz (62kB)
Collecting urllib3[secure] (from -r requirements.txt (line 23))
  Downloading https://files.pythonhosted.org/packages/e6/60/247f23a7121ae632d62811ba7f273d0e58972d75e58a94d329d51550a47d/urllib3-1.25.3-py2.py3-none-any.whl (150kB)
Collecting nipy from git+https://github.com/jcohenadad/nipy.git#egg=nipy (from -r requirements.txt (line 24))
  Cloning https://github.com/jcohenadad/nipy.git to /tmp/pip-install-3kdwrpwu/nipy
  Running command git clone -q https://github.com/jcohenadad/nipy.git /tmp/pip-install-3kdwrpwu/nipy
  ERROR: Error [Errno 2] No such file or directory: 'git': 'git' while executing command git clone -q https://github.com/jcohenadad/nipy.git /tmp/pip-install-3kdwrpwu/nipy
ERROR: Cannot find command 'git' - do you have 'git' installed and in your PATH?
Obtaining file:///home/sct/sct_4.0.0-beta.5
Installing collected packages: spinalcordtoolbox
  Running setup.py develop for spinalcordtoolbox
Successfully installed spinalcordtoolbox

Creating launchers for Python scripts...

Installing binaries...
>> sct_download_data -d binaries_debian -o /home/sct/sct_4.0.0-beta.5/bin
Traceback (most recent call last):
  File "/home/sct/sct_4.0.0-beta.5/scripts/sct_download_data.py", line 22, in <module>
    import requests
ModuleNotFoundError: No module named 'requests'
Failed to download SCT binaries.
Installation failed

The command '/bin/sh -c curl --location https://github.com/neuropoly/spinalcordtoolbox/archive/4.0.0-beta.5.tar.gz | gunzip | tar x && cd spinalcordtoolbox-4.0.0-beta.5* && yes | ./install_sct && cd - && rm -rf spinalcordtoolbox-4.0.0-beta.5*' returned a non-zero code: 1
ERROR:root:sct-4.0.0-beta.5-official failed with error code 1
Done building images
ERROR:root:sct-4.0.0-beta.5-ubuntu-18.04 failed with error code 1
ERROR:root:sct-4.0.0-beta.5-official failed with error code 1
[1, 1]
ERROR:root:Not proceeding further as one distro failed

@alexfoias you need to install git (see your error: ":ERROR: Cannot find command 'git'")
also check, you have other tools that should be installed

@gmotzespina you noticed here the message "Successfully installed spinalcordtoolbox" even though pip install resulted in errors. Could you please add a check in the installer (e.g. check for status 0) so it immediately stops with error instead of trying to continue running the installation scripts, resulting in other errors that will confuse users. Maybe you can open another specific issue.

@jcohenadad Sure I'll get that done!

I believe this issue was addressed but never closed. We now set MPLBACKEND in the shellrc in our install script.


QR authorization

In new versions  ability to override QrHandler have removed from code. How i can get it QR to send it to my front for example?

Sorry, just recognized that i can define custom QrHandler through options builder

did you find out how to print image and after that call a method?

did you find out how to print image and after that call a method?

supply a custom qr handler

I would like to return my qrcode, but it returns only if I read it.
api = Whatsapp.webBuilder()
.newConnection().name("InterWPP")
.unregistered(QrHandler.toFile(temp.toPath(), QrHandler.ToFileConsumer.toTerminal()))
api.connect().join()

I would like to return my qrcode, but it returns only if I read it.
api = Whatsapp.webBuilder()
.newConnection().name("InterWPP")
.unregistered(QrHandler.toFile(temp.toPath(), QrHandler.ToFileConsumer.toTerminal()))
api.connect().join()

Don't return your qr code, move that login inside a custom qrHandler

maybe I'm bad at this, but I really couldn't do anything

where can I put a qrHandler? Is it possible in the latest version? I'm using 3.5.1 and the only place I can pass a QrHandler is inside unregistered(), Can you give me a clue or tell what too look into to know how to do it?

where can I put a qrHandler? Is it possible in the latest version? I'm using 3.5.1 and the only place I can pass a QrHandler is inside unregistered(), Can you give me a clue or tell what too look into to know how to do it?

just pass your custom qr handler there

But it executes only after the join(), I want to get the file before the join and after that call another method


Full usage example?

Hi. Thank you very much for putting this module together.
I am a total sinatra/padrino n00b (I have some ruby experience, but certainly not a super expert). I'm trying to wrap my head around how to build out my website using warden for authorization/authentication. I understand how to install the gem and put the code into my padrino project. And I understand how to use the authorize! method in my controllers to restrict access to pages. But I'm confused about how I set things up for login workflow. I created a login view and that is successfully being shown when an authorize! check fails. But if I try to log in with an incorrect password, I'm not brought back to the login page itself, but rather to some page I don't have implemented (and I believe it's trying to look for it in a different app within my project -- but I don't understand this because I want to display an error message on the login page itself so the user can try again, not go to some other page in some other section of my website).
Thanks for any help you can provide in how to implement the full workflow for password login and registration.
-Jordan

Not sure if you're around anymore, but... I've narrowed down this problem a bit. Seems that the failure_app is properly being set to my app, but warden gem is assuming a path of "/unauthenticated", whereas the padrino-warden gem in responding to "/sessions/unauthenticated". If I change line 94 of warden-1.1.0/lib/manager.rb from "opts[:action] || 'unauthenticated'" to "opts[:action] || 'sessions/unauthenticated'", the the built-in padrino-warden response does get called.
What I can't figure out, though, is how to tell warden to use that response path ('sessions/unauthenticated') instead of its default '/unauthenticated' -- I have no idea how to set this option properly (so I'm not having to change the default value in the warden gem itself). Any ideas?

In case anyone is interested, looks like someone else has solved this issue (and some others) with this fork:
https://github.com/elmer/padrino-warden


ngOnDestroy doesn't get called on child component when changing to a different one

I'm guessing this is incorrect behaviour?
If not, is there another way to detect when this occurs in the child component, as it may need reinitialisation?

Hello @jpike88! NgOnDestroy should be always called on child components when destroyed or we change to another one.
So, can you reproduce that issue on Stackblitz? You could use this as template https://stackblitz.com/edit/angular-simple-dynamic

dont worry its an issue with my own implementation never mind


Invalid Index Error

I recently ran the build and it caused this. Previously it was working fine. No updates
terraform version: 0.12.12
module version: 2.0
Error: Invalid index
on .terraform/modules/sns_lambda_slack_notifier/main.tf line 50, in resource "aws_lambda_permission" "sns_notify_slack":
50:   function_name = aws_lambda_function.notify_slack[0].function_name
|----------------
| aws_lambda_function.notify_slack is empty tuple
The given key does not identify an element in this collection value.
Error: Invalid index
on .terraform/modules/sns_lambda_slack_notifier_error/main.tf line 50, in resource "aws_lambda_permission" "sns_notify_slack":
50:   function_name = aws_lambda_function.notify_slack[0].function_name
|----------------
| aws_lambda_function.notify_slack is empty tuple
The given key does not identify an element in this collection value.

Please give a try v3.0.0 which has been just released.
It has a lot of improvements when working with Lambda resources.


utf-8 support for subject

Everything is fine, but I noticed that the subject header does not support utf-8 when sending a mail. I have problems with "şğç..." and similar characters

I think I solved it myself until the answer came...
  if data["subject"] then
	headers["Subject"] = "=?UTF-8?Q?" .. data["subject"] .. "?="
  end


[Feature Request] Add support for Redshift Spectrum tables

Hello Guys,
I can't see redshift spectrum tables on sql lab:

If I choose local schema, it works fine

Anyone knows how to solve this?
thank you so much!

@rubenssoto thanks for submitting! Moving this feature request to Github Discussions so we can keep Issues focused on bugs!


Feature Request：When I minimize the window and it's still big, I want it to shrink to the bottom and arrange it

like this

Click the Minimize button, and the window automatically shrinks to the bottom to become a TAB
And want to have shortcuts to all zoom out and all zoom in on these Windows

Please stop opening duplicate issues.  There is already an open request for this feature, which you can find by searching the issues for "minimize".


Theme: Virtualmin and Cloudmin version detected incorrectly

The theme doesn't distinguish GPL/Pro versions correctly.

Will be fixed in 18.31


Rewrite custom character sorting UI

The current UI was a nice first attempt, but we've made new standards that it can be upgraded to meet.

The new UI is now live on Preview. User is greeted by a menu with a master on/off switch, input to create a new list, and a menu of existing lists. Lists can be enabled/disabled, edited, or deleted.
The sorting UI displays tiles containing the character portrait and base description. Enabled chars in a list are displayed first sorted in their proper order. All remaining, disabled characters can be processed with one of the following options:

Hidden
Sorted by ID
Sorted by Base Fame
Sorted by Total Fame
Sorted by Class, then Base Fame

Characters sort using Muledump_Dragging bindings. Shift+Click mechanics are set for enable/disable. Closing the UI will apply any changes made to the list.

Released with v9.4.0.


Endorsed Responses/Answers functionality is not working

@aleffert please review

almost there!

@aleffert please review

@aleffert please review

:+1:


Support rich text

As the title says , it would be useful to animated texts inside a TextSpan

This is a widget-based solution, so it will have to be a widget.


multi language support added

this is working, issue #33 solved.
@Akshat111111 can you review this please .
https://github.com/user-attachments/assets/1583fff0-9e46-4dae-a157-69504d75eb5b

@Akshat111111 can you please review this , i have one more PR to make.

@Akshat111111 can you please review this , i have one more PR to make.

@Akshat111111 can you please review this , i have one more PR to make.

@Akshat111111 can you please review this , i have one more PR to make.

@Akshat111111 i have fixed the conflicts , please review this .
thank you


correct json path for package with given version

Sorry for all the PRs 😅

Trust me, I feel nothing but appreciation whenever you open a PR 🙂
I'm a bit unsure about the use case here? Why would someone pass @ in the package name?

Glad to hear that :)
When your dependency graph contains the same crate multiple times at different versions you have to specify which one you want.

But since rustdoc-json disregards the version, I don't think it makes sense to have an API that allows version to be specified? Or am I missing something?

My understanding is this:
builder.package("cratename") might fail if there's multiple cratenames in the dependecy graph
<EMAIL_ADDRESS>will correctly pass this to rustdoc and produce a json file
that json file will be named "cratename.json"

Thank you for explaining, that makes sense.
We're gonna need a regression test for this fix. (Otherwise the making of each release will induce maintainer angst  caused by fear of breaking this fix.) Probably easiest is to create two dependencies for rustdoc-json/tests/test_crate,  like rustdoc-json/tests/test_crate_dep_1_0_0 and rustdoc-json/tests/test_crate_dep_2_0_0.
However, I wonder if there is not an upstream bug at the bottom of this. If the crate version is not part of the rustdoc JSON file output file name, one of the files will overwrite the other. Perhaps enough of an edge case to not be a problem in practice,however.
I wonder how the rustdoc HTML output files are named in a case like this.

We're gonna need a regression test for this fix. (Otherwise the making of each release will induce maintainer angst caused by fear of breaking this fix.) Probably easiest is to create two dependencies for rustdoc-json/tests/test_crate, like rustdoc-json/tests/test_crate_dep_1_0_0 and rustdoc-json/tests/test_crate_dep_2_0_0.

Sure thing! I added a test.

However, I wonder if there is not an upstream bug at the bottom of this. If the crate version is not part of the rustdoc JSON file output file name, one of the files will overwrite the other. Perhaps enough of an edge case to not be a problem in practice,however.

I wonder how the rustdoc HTML output files are named in a case like this.

That's a good point. Running cargo rustdoc overwrites one instance of test_dep. Running cargo doc does the same but produces a warning:
warning: output filename collision.
The lib target `test_dep` in package `test_dep v2.0.0 (cargo-public-api\rustdoc-json\tests\test_crates\test_dep_2_0_0)` has the same out
put filename as the lib target `test_dep` in package `test_dep v1.0.0 (cargo-public-api\rustdoc-json\tests\test_crates\test_dep_1_0_0)`.
Colliding filename is: cargo-public-api\rustdoc-json\tests\test_crates\test_crate\target\doc\test_dep\index.html
The targets should have unique names.
This is a known bug where multiple crates with the same name use
the same path; see <https://github.com/rust-lang/cargo/issues/6313>.

Clickable link: https://github.com/rust-lang/cargo/issues/6313

Looking at it closer, the warning seems to be targeted at our weird test setup.
In my testing setup my cargo tree includes this bit:
├── embedded-hal v0.2.7
│   │   ├── nb v0.1.3
│   │   │   └── nb v1.0.0

No warnings are produced here

do you have a virtual manifest and are not specifying workspace.resolver = "2" perhaps?

No virtual manifests or workspaces involved. I think it's just this bug https://github.com/rust-lang/rust/issues/56169

I think a good solution will be to add a slient(true) method on Builder, which would suppress stdout and stderr.
It will be non-trivial to write tests for that though, so I don't want to block this PR on it. Merging.
Merging this PR does not violate the "always releasable main branch" rule, since the problem we have only relates to the running of our test suite.


Error when running inference on custom sentences section in semantic simmilarity with BERT.ipynb

Hi,
I am sorry but I am not good at engllish.
I am a newbie in bert.
I tried to run the semantic_simmilarity_with_bert.ipynb on my gpu server, but I got an error, especially inference on custom sentences section after fine-tuning and evaluating model on the test set.
My GPU Server configuration is as follows.

OS - Ubuntu 18.04
GPU - RTX 2080 Super X 2
tensoflow-gpu : 2.3.0
transformers version: 3.1.0
CUDA Toolkit : 10.0
cudnn library : 7.6.4

I ran the cell
sentence1 = "Two women are observing something together."

check_similarity(sentence1, sentence2)
but I got error messages as follows.
CancelledError                            Traceback (most recent call last)
 in
 in check_similarity(sentence1, sentence2)
5     )
6
----> 7     proba = model.predict(test_data)[0]
8     idx = np.argmax(proba)
9     proba = f"{proba[idx]: .2f}%"
~/.conda/envs/tf23hf/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py in _method_wrapper(self, *args, **kwargs)
128       raise ValueError('{} is not supported in multi-worker mode.'.format(
129           method.name))
--> 130     return method(self, *args, **kwargs)
131
132   return tf_decorator.make_decorator(
~/.conda/envs/tf23hf/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py in predict(self, x, batch_size, verbose, steps, callbacks, max_queue_size, workers, use_multiprocessing)
1597           for step in data_handler.steps():
1598             callbacks.on_predict_batch_begin(step)
-> 1599             tmp_batch_outputs = predict_function(iterator)
1600             if data_handler.should_sync:
1601               context.async_wait()
~/.conda/envs/tf23hf/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py in call(self, *args, **kwds)
778       else:
779         compiler = "nonXla"
--> 780         result = self._call(*args, **kwds)
781
782       new_tracing_count = self._get_tracing_count()
~/.conda/envs/tf23hf/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py in _call(self, *args, **kwds)
844               *args, **kwds)
845       # If we did not create any variables the trace we have is good enough.
--> 846       return self._concrete_stateful_fn._filtered_call(canon_args, canon_kwds)  # pylint: disable=protected-access
847
848     def fn_with_cond(*inner_args, **inner_kwds):
~/.conda/envs/tf23hf/lib/python3.7/site-packages/tensorflow/python/eager/function.py in _filtered_call(self, args, kwargs, cancellation_manager)
1846                            resource_variable_ops.BaseResourceVariable))],
1847         captured_inputs=self.captured_inputs,
-> 1848         cancellation_manager=cancellation_manager)
1849
1850   def _call_flat(self, args, captured_inputs, cancellation_manager=None):
~/.conda/envs/tf23hf/lib/python3.7/site-packages/tensorflow/python/eager/function.py in _call_flat(self, args, captured_inputs, cancellation_manager)
1922       # No tape is watching; skip to running the function.
1923       return self._build_call_outputs(self._inference_function.call(
-> 1924           ctx, args, cancellation_manager=cancellation_manager))
1925     forward_backward = self._select_forward_and_backward_functions(
1926         args,
~/.conda/envs/tf23hf/lib/python3.7/site-packages/tensorflow/python/eager/function.py in call(self, ctx, args, cancellation_manager)
548               inputs=args,
549               attrs=attrs,
--> 550               ctx=ctx)
551         else:
552           outputs = execute.execute_with_cancellation(
~/.conda/envs/tf23hf/lib/python3.7/site-packages/tensorflow/python/eager/execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
58     ctx.ensure_initialized()
59     tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
---> 60                                         inputs, attrs, num_outputs)
61   except core._NotOkStatusException as e:
62     if name is not None:
CancelledError:  [Derived]RecvAsync is cancelled.
[[{{node GroupCrossDeviceControlEdges_0/Identity_3/_849}}]]
[[functional_1/dense/Softmax/_845]] [Op:__inference_predict_function_371428]
Function call stack:
predict_function

please let me know what is wrong with it and how to fix it...
thank you in advance.

Hi, I was able to run Semantic Similarity with BERT without any error, since it is a large model, check your memory usage and limit, if it reaches the max memory limit then consider reducing the batch size.
Below is the working Gist attached for reference.
https://gist.github.com/sachinprasadhs/e5ff2c01e75c780fbebeca39c1848c9c


spyder: 3.3.3 -> 3.3.4, convert to python modules

Motivation for this change
I want to package CQ-editor, which has spyder as a dependency.
Things done

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

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

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

@GrahamcOfBorg eval
@GrahamcOfBorg build spyder

@GrahamcOfBorg eval
@GrahamcOfBorg build spyder


Virtualize options to gain performance on big option lists

Using multiselect with very big lists of options (3000+) the performance is very slow because all options are rendered in the options list instantly.
A virtualization of the option list would be a great thing. Only render the first n options and add more if needed (on scrolling or for search).
Vuetify has a very smart concept for this, imho:
They use a variable lastItem (could be defined by a prop to make the virtualization completely optional) that they modify on key clicks and on scroll (if needed).
Please search for lastItem in https://github.com/vuetifyjs/vuetify/blob/master/packages/vuetify/src/components/VSelect/VSelect.ts

Definitely agree with this. I'm having pretty rough performance issues with only 100+ options. Not sure what I can do to make it faster...

Update: Performance seems to only be a problem when compiling in dev or hot mode (I'm using Laravel Mix). When I run npm run prod, performance is fine 👍  false alarm.

Added infinite scroll in 2.4.0. Here's an example:
https://github.com/vueform/multiselect#load-async-options-from-api-on-open-with-infinite-scroll


RAM size in EnvisionDemo18 linker/loader file

In the loader file for demo 18:
https://github.com/miniwinwm/RenesasEnvisionGCC/blob/master/EnvisionDemo18/generate/linker_script.ld
RAM is set to 655360. But this refers to the block betwen addres 0x0000 0000 and 0x0003 FFFF.
That's 256 kB. Would this not be 262144 ?
From:
MEMORY
{
	RAM : ORIGIN = 0x0, LENGTH = 655360

To:
MEMORY
{
	RAM : ORIGIN = 0x0, LENGTH = 262144

Pull request: #2

Thanks, now merged.


minor changes in paper

I also wonder if "which selects out all materials" should be "which selects all materials"?

I also wonder if "which selects out all materials" should be "which selects all materials"?

Good catch, thank you. Please see #176.


DS-104 Array personae

Support array-valued personae inputs. Multiple personaes can be passed to datasim as so:
-a <personae json file 1> -a <personae json file 2> ...

and will generate statements using all actors in all personaes. The personae property in the input file (e.g. input/simple.json) has been changed to personaes personae-array and is now array-valued (like profiles).
Note: Actor IDs across the different personaes must be distinct.

This pull request has been internally approved, but do not merge into master until these changes have been approved by ADL.


Cannot read property 'galleryInformation' of undefined

Issue Id: 8334f064-5537-5eb2-61f3-3a8996e99dd8Versions - 0.10.1-releaseStack /vs/workbench/parts/extensions/electron-browser/extensionsQuickOpen.ts#L325:16 (DataSource.getId)/vs/base/parts/quickopen/browser/quickOpenViewer.ts#L32:59 (DataSource.getId)/vs/base/parts/tree/common/treeModel.ts#L1224:56 (TreeModel.getItem)/vs/base/parts/tree/common/treeModel.ts#L944:19 (TreeModel.reveal)vs/workbench/vs/base/common/winjs.base.raw.js#L1826:0 (onComplete)/vs/base/parts/tree/common/treeModel.ts#L943:5 (TreeModel.reveal)/vs/base/parts/tree/browser/treeImpl.ts#L157:20 (Tree.reveal)/vs/base/parts/quickopen/browser/quickOpenWidget.ts#L542:14 (QuickOpenWidget.autoFocus)/vs/base/parts/quickopen/browser/quickOpenWidget.ts#L500:11 (QuickOpenWidget.setInputAndLayout)vs/workbench/vs/base/common/winjs.base.raw.js#L1782:0 (onComplete)    at __dirname.undefined.t.Class.define.done (out/vs/workbench/workbench.main.js:1544:8710)

The only explanation for this that I can find is #696. Closing this as a dupe of that and let's see if they keep on coming.


Hyperlinks rendered but not active on Class/Attribute etc overview pages' narratives

See narrative at top of page for Class and Attributes etc - the hyperlinks are not active
e.g. https://datadictionary.nhs.uk/attributes_overview.html#attribute_overview

This content is managed in Oxygen outside the Mauro capability.  A separate but related issue is that the examples are images, not DITA so need to switch to DITA content reuse.
For Nicholas and Angela to address

Hyperlinks added to the overviews

Hyperlinks added to the overviews

Hyperlinks added to all overviews in the January release.