unable to implement memory with sql agent toolkit

System Info
I am using langchain 0.0.238, I want to use ConversationBufferMemory with sql-agent-toolkit. Please support in this regard.
I changed prompt :
flake8: noqa
SQL_PREFIX = """You are an agent designed to interact with a SQL database.
Given an input question, create a syntactically correct {dialect} query to run, then look at the results of the query and return the answer.
Unless the user specifies a specific number of examples they wish to obtain, else fetch all results then fetch all results donot use 'LIMIT'.
When you are using 'WHERE' clause to fetch specific data, you have to apply 'WHERE' clause in several ways like exact matchusing '=' or substring match using 'LIKE'.
You can order the results by a relevant column to return the most interesting examples in the database.
Never query for all the columns from a specific table, only ask for the relevant columns given the question. If you did notfind the column asked by the user, then return "data for the specified column doesnot exists." as the answer.
You have access to tools for interacting with the database.
Only use the below tools. Only use the information returned by the below tools to construct your final answer.
You MUST double check your query before executing it. If you get an error while executing a query, rewrite the query and try again.
DO NOT make any DML statements (INSERT, UPDATE, DELETE, DROP etc.) to the database.
If the question does not seem related to the database, just return "I don't know" as the answer.
This reminds you of your past memory and events:{chat_history}
Know that only the "Question" ("HumanMessage") and "Final answer" ("AIMessage") to each previous question are available inthe past memory section above.
Hence, always include enough detail in the Final answer so that you can answer subsequent questions.
If you believe any of the data computed to answer a question is likely to be useful in answering a possible follow-on question.
"""
SQL_SUFFIX = """Begin!
Question: {input}
Thought: I should look at the tables in the database to see what I can query.  Then I should query the schema of the most relevant tables.
{agent_scratchpad}"""
SQL_FUNCTIONS_SUFFIX = """I should look at the tables in the database to see what I can query.  Then I should query the schema of the most relevant tables."""
And changed base.py:
"""SQL agent."""
from typing import Any, Dict, List, Optional
from langchain.agents.agent import AgentExecutor, BaseSingleActionAgent
#from sql_agent_toolkits.sql.prompt import ( SQL_FUNCTIONS_SUFFIX,SQL_PREFIX,SQL_SUFFIX,)
from langchain.agents.agent_toolkits.sql.prompt import (
SQL_FUNCTIONS_SUFFIX,
SQL_PREFIX,
SQL_SUFFIX,
)
from langchain.agents.agent_toolkits.sql.toolkit import SQLDatabaseToolkit
from langchain.agents.agent_types import AgentType
from langchain.agents.mrkl.base import ZeroShotAgent
from langchain.agents.mrkl.prompt import FORMAT_INSTRUCTIONS
from langchain.agents.openai_functions_agent.base import OpenAIFunctionsAgent
from langchain.callbacks.base import BaseCallbackManager
from langchain.chains.llm import LLMChain
from langchain.prompts.chat import (
ChatPromptTemplate,
HumanMessagePromptTemplate,
MessagesPlaceholder,
)
from langchain.schema.language_model import BaseLanguageModel
from langchain.schema.messages import AIMessage, SystemMessage
from langchain.memory import ConversationBufferMemory
global memory
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
def create_sql_agent(
llm: BaseLanguageModel,
toolkit: SQLDatabaseToolkit,
agent_type: AgentType = AgentType.ZERO_SHOT_REACT_DESCRIPTION,
callback_manager: Optional[BaseCallbackManager] = None,
prefix: str = SQL_PREFIX,
suffix: Optional[str] = SQL_SUFFIX,
format_instructions: str = FORMAT_INSTRUCTIONS,
input_variables: Optional[List[str]] = None,
top_k: int = 10,
max_iterations: Optional[int] = 15,
max_execution_time: Optional[float] = None,
early_stopping_method: str = "force",
verbose: bool = False,
agent_executor_kwargs: Optional[Dict[str, Any]] = None,
**kwargs: Dict[str, Any],
) -> AgentExecutor:
"""Construct an SQL agent from an LLM and tools."""
tools = toolkit.get_tools()
#prefix = prefix.format(dialect=toolkit.dialect, top_k=top_k)
#print("prefix", prefix)
if input_variables is None:
input_variables = ["dialect", "input", "agent_scratchpad"]
agent: BaseSingleActionAgent
print("input_variables", input_variables)
if agent_type == AgentType.ZERO_SHOT_REACT_DESCRIPTION:
prompt = ZeroShotAgent.create_prompt(
tools,
prefix=prefix,
suffix=suffix or SQL_SUFFIX,
format_instructions=format_instructions,
input_variables=input_variables,
)
llm_chain = LLMChain(
llm=llm,
prompt=prompt,
callback_manager=callback_manager,
)
tool_names = [tool.name for tool in tools]
agent = ZeroShotAgent(llm_chain=llm_chain, allowed_tools=tool_names, **kwargs)
memory = ConversationBufferMemory(memory_key="chat_history")
elif agent_type == AgentType.OPENAI_FUNCTIONS:
    messages = [
        SystemMessage(content=prefix),
        HumanMessagePromptTemplate.from_template("{input}"),
        AIMessage(content=suffix or SQL_FUNCTIONS_SUFFIX),
        MessagesPlaceholder(variable_name="agent_scratchpad"),
    ]
    input_variables = ["input", "agent_scratchpad"]
    _prompt = ChatPromptTemplate(input_variables=input_variables, messages=messages)

    agent = OpenAIFunctionsAgent(
        llm=llm,
        prompt=_prompt,
        tools=tools,
        callback_manager=callback_manager,
        **kwargs,
    )
else:
    raise ValueError(f"Agent type {agent_type} not supported at the moment.")

return AgentExecutor.from_agent_and_tools(
    agent=agent,
    tools=tools,
    callback_manager=callback_manager,
    verbose=verbose,
    max_iterations=max_iterations,
    max_execution_time=max_execution_time,
    early_stopping_method=early_stopping_method,
    memory=memory,
    **(agent_executor_kwargs or {}),
)

Who can help?
No response
Information

[ ] The official example notebooks/scripts
[ ] My own modified scripts

Related Components

[ ] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[ ] Vector Stores / Retrievers
[X] Memory
[X] Agents / Agent Executors
[X] Tools / Toolkits
[ ] Chains
[ ] Callbacks/Tracing
[ ] Async

Reproduction
I have changed Prompt.py and base.py to provide chat_history as input but I am running into errors from create_prompt method using ZeroShotAgent or from LLMChain(expecting inputs in dictionary)
Error:
input_variables ['dialect', 'input', 'agent_scratchpad']
input_variables from /opt/miniconda/lib/python3.10/site-packages/langchain/agents/mrkl/ ['dialect', 'input', 'agent_scratchpad']
ValueError                                Traceback (most recent call last)
Cell In[1], line 2
1 from tools.db_llm_with_memory import *
----> 2 db_llm_with_memory("which all enzymes have urate as substrate")
File ~/notebooks/atossa-usecase/atossa_usecase/tools/db_llm_with_memory.py:42, in db_llm_with_memory(query)
35     agent = create_sql_agent(
36         llm=ChatOpenAI(temperature=0),
37         toolkit=toolkit,
38         verbose=True,
39         agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,memory=memory
40     )
41 #     agent_chain = AgentExecutor.from_agent_and_tools(agent=agent, tools=toolkit, verbose=True, memory=memory)
---> 42     agent.run(query)
File /opt/miniconda/lib/python3.10/site-packages/langchain/chains/base.py:440, in Chain.run(self, callbacks, tags, metadata, *args, **kwargs)
438     if len(args) != 1:
439         raise ValueError("run supports only one positional argument.")
--> 440     return self(args[0], callbacks=callbacks, tags=tags, metadata=metadata)[
441         _output_key
442     ]
444 if kwargs and not args:
445     return self(kwargs, callbacks=callbacks, tags=tags, metadata=metadata)[
446         _output_key
447     ]
File /opt/miniconda/lib/python3.10/site-packages/langchain/chains/base.py:220, in Chain.call(self, inputs, return_only_outputs, callbacks, tags, metadata, include_run_info)
185 def call(
186     self,
187     inputs: Union[Dict[str, Any], Any],
(...)
193     include_run_info: bool = False,
194 ) -> Dict[str, Any]:
195     """Execute the chain.
196
197     Args:
(...)
218             Chain.output_keys.
219     """
--> 220     inputs = self.prep_inputs(inputs)
221     callback_manager = CallbackManager.configure(
222         callbacks,
223         self.callbacks,
(...)
228         self.metadata,
229     )
230     new_arg_supported = inspect.signature(self._call).parameters.get("run_manager")
File /opt/miniconda/lib/python3.10/site-packages/langchain/chains/base.py:364, in Chain.prep_inputs(self, inputs)
362         _input_keys = _input_keys.difference(self.memory.memory_variables)
363     if len(_input_keys) != 1:
--> 364         raise ValueError(
365             f"A single string input was passed in, but this chain expects "
366             f"multiple inputs ({_input_keys}). When a chain expects "
367             f"multiple inputs, please call it by passing in a dictionary, "
368             "eg chain({'foo': 1, 'bar': 2})"
369         )
370     inputs = {list(_input_keys)[0]: inputs}
371 if self.memory is not None:
ValueError: A single string input was passed in, but this chain expects multiple inputs ({'dialect', 'input'}). When a chain expects multiple inputs, please call it by passing in a dictionary, eg chain({'foo': 1, 'bar': 2})
Expected behavior
Please provide some simple addon behaviour to use memory with sql agent

Hi...
Thank you for quick response. I fixed the issue in create_sql_agent and
doing agent.run as you specified. I changed input variables in
agents/mrkl/base.py, but still getting the error as:
input_variables None
input_variables from
/opt/miniconda/lib/python3.10/site-packages/langchain/agents/mrkl/
None
input_variables from
/opt/miniconda/lib/python3.10/site-packages/langchain/agents/mrkl/
['dialect', 'chat_history', 'input', 'agent_scratchpad']
---------------------------------------------------------------------------ValidationError
Traceback (most recent call last)
Cell In[1], line 2      1 from tools.db_llm_with_memory import *---->
2 db_llm_with_memory("which all enzymes have urate as substrate")
File ~/notebooks/atossa-usecase/atossa_usecase/tools/db_llm_with_memory.py:39,
in db_llm_with_memory(query)     21 #     tools = toolkit.get_tools()
22 # #     print(tools)     23        (...)     35 #
input_variables=["input", "chat_history", "agent_scratchpad"],     36
)     37     memory =
ConversationBufferMemory(memory_key="chat_history",
return_messages=True)---> 39     agent = create_sql_agent(     40
llm=ChatOpenAI(temperature=0),     41         toolkit=toolkit,
42         verbose=True,     43
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,memory=memory     44
)     45     agent.run({"dialect":
"sqlite:////home/jupyter/notebooks/atosa_testdb.db", "input":
"your_input_query"})
File ~/notebooks/atossa-usecase/atossa_usecase/sql_agent_toolkits/sql/base.py:59,
in create_sql_agent(llm, toolkit, agent_type, callback_manager,
prefix, suffix, format_instructions, input_variables, top_k,
max_iterations, max_execution_time, early_stopping_method, verbose,
memory, agent_executor_kwargs, **kwargs)     57
print("input_variables", input_variables)     58 if agent_type ==
AgentType.ZERO_SHOT_REACT_DESCRIPTION:---> 59     prompt =
ZeroShotAgent.create_prompt(     60         tools,     61
prefix=prefix,     62         suffix=suffix or SQL_SUFFIX,     63
format_instructions=format_instructions,     64
input_variables=input_variables,     65     )     66     llm_chain =
LLMChain(     67         llm=llm,     68         prompt=prompt,     69
callback_manager=callback_manager,     70     )     71
tool_names = [tool.name for tool in tools]
File /opt/miniconda/lib/python3.10/site-packages/langchain/agents/mrkl/base.py:88,
in ZeroShotAgent.create_prompt(cls, tools, prefix, suffix,
format_instructions, input_variables)     86     input_variables =
["dialect","chat_history","input", "agent_scratchpad"]     87
print("input_variables from
/opt/miniconda/lib/python3.10/site-packages/langchain/agents/mrkl/",
input_variables)---> 88 return PromptTemplate(template=template,
input_variables=input_variables)
File /opt/miniconda/lib/python3.10/site-packages/langchain/load/serializable.py:74,
in Serializable.init(self, **kwargs)     73 def init(self,
**kwargs: Any) -> None:---> 74     super().init(**kwargs)     75
self._lc_kwargs = kwargs
File /opt/miniconda/lib/python3.10/site-packages/pydantic/main.py:341,
in pydantic.main.BaseModel.init()
ValidationError: 1 validation error for PromptTemplate
root
Invalid prompt schema; check for mismatched or missing input
parameters. {'chat_history'} (type=value_error)
Can you please help in this regard
On Fri, Jul 21, 2023 at 8:08 PM dosu-beta[bot] @.***>
wrote:

Answer generated by a 🤖
Answer
I understand that you're trying to use the ConversationBufferMemory with
the SQL agent in the LangChain framework, but you're encountering an error
because the LLMChain is expecting multiple inputs in the form of a
dictionary, while you're passing a single string input.
To address this issue, you should pass the inputs as a dictionary when
calling the run method of the AgentExecutor. Here's how you can do it:
agent.run({"dialect": "your_sql_dialect", "input": "your_input_query"})
In the above code, replace "your_sql_dialect" with the SQL dialect you're
using (like 'mysql', 'postgresql', etc.) and "your_input_query" with the
actual query you want to run.
However, to use the ConversationBufferMemory with the SQL agent, you
would need to modify the create_sql_agent function to accept a memory
argument and pass it to the AgentExecutor.from_agent_and_tools method.
Here's how you can do it:
def create_sql_agent(
# ... existing parameters ...
memory: Optional[ConversationBufferMemory] = None,  # Add this line
**kwargs: Dict[str, Any],
) -> AgentExecutor:
# ... rest of the code ...
return AgentExecutor.from_agent_and_tools(
    # ... existing parameters ...
    memory=memory,  # Add this line
    **(agent_executor_kwargs or {}),
)

Then, when creating the SQL agent, you can create the
ConversationBufferMemory and pass it like this:
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)agent = create_sql_agent(
# ... existing parameters ...
memory=memory  # Add this line
)
Please note that these changes are not tested and might require further
adjustments. This is one potential solution based on the information you've
provided and the error message you're seeing. If you believe this solution
is correct and it works for you, you might consider making a pull request
to contribute to the project.
Sources

langchain/agents/agent_toolkits/sql/base.py
https://github.com/hwchase17/langchain/blob/-/langchain/agents/agent_toolkits/sql/base.py

This response is meant to be useful, save you time, and share context. It
is not meant to be a precise solution, but rather a starting point for
your own research.
Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it
is irrelevant.
—
Reply to this email directly, view it on GitHub
https://github.com/hwchase17/langchain/issues/8069#issuecomment-1645697425,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A35ZQJ6IWIHQZPAVHZZVECDXRKH6TANCNFSM6AAAAAA2SYG3ZU
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hey,
I am using the following code for using memory with sql_agent, so I created
custom agent with sql_toolkit and custom prompt. But it is not using
chat_history in follow up questions. How can I make sure whether
chat_history is appended in the end of every agent.run("query").
def db_llm_with_memory_zeroshot(query: str):
db =

SQLDatabase.from_uri("sqlite:////home/jupyter/notebooks/atosa_testdb.db")
toolkit = SQLDatabaseToolkit(db=db,

llm=ChatOpenAI(model='gpt-3.5-turbo',temperature=0))
tools = toolkit.get_tools()
print(tools)

tool_names = [tool.name for tool in tools]
print("tool_names:", tool_names)

prefix = """Have a conversation with a human, answering the following

questions as best you can.
Given an input question, create a syntactically correct {dialect} query
to run, then look at the results of the query and return the answer. You
should be able to use appropriate columns of sql tables based on user query
as user may not specify the same column in his query.
You should look at the tables in the database to see what I can query.
Then you should query the schema of the most relevant tables.
Unless the user specifies a specific number of examples they wish to
obtain, else fetch all results donot use 'LIMIT'.
When you are using 'WHERE' clause to fetch specific data, you have to
apply 'WHERE' clause in several ways like exact matchusing '=' or substring
match using 'LIKE'.
You can order the results by a relevant column to return the most
interesting examples in the database.
Never query for all the columns from a specific table, only ask for the
relevant columns given the question. If you did notfind the column asked by
the user, then return "data for the specified column doesnot exists." as
the answer.
You have access to tools for interacting with the database.
Only use the below tools. Only use the information returned by the
below tools to construct your final answer.
You MUST double check your query before executing it. If you get an
error while executing a query, rewrite the query and try again.
DO NOT make any DML statements (INSERT, UPDATE, DELETE, DROP etc.) to

the database.
If the question does not seem related to the database, just return "I

don't know" as the answer.
This reminds you of your past memory and events:{chat_history}.And also
print the {chat_history}
Know that only the "Question" ("HumanMessage") and "Final answer"

("AIMessage") to each previous question are available inthe past memory
section above.
Hence, always include enough detail in the Final answer so that you can
answer subsequent questions.
If you believe any of the data computed to answer a question is likely
to be useful in answering a possible follow-on question.
"""
suffix = """Begin!"
{chat_history}
Question: {input}
{agent_scratchpad}"""

FORMAT_INSTRUCTIONS = """Use the following format:

Question: the input question you must answer
Thought: you should always think about what to do
Action: the action to take, should be one of [{tool_names}]
Action Input: the input to the action
Observation: the result of the action
... (this Thought/Action/Action Input/Observation can repeat N times)
Thought: I now know the final answer
Final Answer: the final answer to the original input question"""

prompt = ZeroShotAgent.create_prompt(
    tools,
    prefix=prefix,
    suffix=suffix,
    format_instructions=FORMAT_INSTRUCTIONS,
    input_variables=["dialect","input", "chat_history",

"agent_scratchpad"],
)
print(prefix)
memory =
ConversationBufferMemory(memory_key="chat_history",output_key='output')
llm_chain =
LLMChain(llm=ChatOpenAI(model='gpt-3.5-turbo',temperature=0), prompt=prompt)
agent = ZeroShotAgent(llm_chain=llm_chain, allowed_tools=tool_names)
agent_executor = AgentExecutor.from_agent_and_tools(agent=agent,

tools=tools,
verbose=True,handle_parsing_errors=True,memory=memory,max_iterations= 25)
agent_executor.run(query)
agent_executor.run({"dialect":

"sqlite:////home/jupyter/notebooks/atosa_testdb.db", "input": query})
And I also changed utils.py in memory module as:
from typing import Any, Dict, List
from langchain.schema.messages import get_buffer_string  # noqa: 401
def get_prompt_input_key(inputs: Dict[str, Any], memory_variables:
List[str]) -> str:
...
prompt_input_keys = list(set(inputs).difference(memory_variables +
["stop"]))
if len(prompt_input_keys) != 1:
#raise ValueError(f"One input key expected got {prompt_input_keys}")
if "input" in prompt_input_keys:
return 'input'
return prompt_input_keys[0]
Please let me know how to check whether it is using chat_history. If not
how to include. Awaiting your response
On Sat, Jul 22, 2023 at 11:09 PM dosu-beta[bot] @.***>
wrote:

Answer generated by a 🤖
Answer
I understand that you're encountering an error when trying to use the
ConversationBufferMemory with the SQL agent in the LangChain framework.
The error message indicates a ValidationError due to a mismatch between
the input variables expected by the PromptTemplate and the ones provided
by the ConversationBufferMemory and the input_key.
To address this issue, you need to ensure that the
ConversationBufferMemory and the input_key provide all the input
variables expected by the PromptTemplate. The PromptTemplate in the
ZeroShotAgent.create_prompt method expects the following input variables: ['dialect',
'chat_history', 'input', 'agent_scratchpad']. However, the ValidationError
message indicates that the chat_history variable is missing.
Here's how you can modify the create_sql_agent function to include the
chat_history in the input_variables:
def create_sql_agent(..., input_variables=None, ...):
...
if input_variables is None:
input_variables = ["dialect", "input", "agent_scratchpad"]
...
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
...
agent.run({"dialect": "sqlite:////home/jupyter/notebooks/atosa_testdb.db", "input": "your_input_query", "chat_history": "<your_chat_history>"})
...
In the agent.run method, you need to pass the chat_history as a part of
the input dictionary. Replace <your_chat_history> with the actual chat
history you want to use.
Please note that this is a potential solution and you might need to adjust
it according to your specific use case and the actual implementation of
your create_sql_agent function.
Also, it's important to note that the input_key should not be in the
memory_keys. If it is, a ValueError will be raised. So, ensure that the
input_key and memory_keys do not overlap.
If you believe this is a bug that could impact other users, feel free to
make a pull request with your proposed changes. If this solution doesn't
align with your experience, I would recommend upgrading to the latest
version of LangChain to ensure you have the most recent bug fixes and
updates.
Sources

langchain/chains/conversation/base.py
https://github.com/hwchase17/langchain/blob/-/langchain/chains/conversation/base.py
libs/langchain/langchain/chains/conversation/base.py
https://github.com/hwchase17/langchain/blob/-/libs/langchain/langchain/chains/conversation/base.py

This response is meant to be useful, save you time, and share context. It
is not meant to be a precise solution, but rather a starting point for
your own research.
Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it
is irrelevant.
—
Reply to this email directly, view it on GitHub
https://github.com/hwchase17/langchain/issues/8069#issuecomment-1646636734,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A35ZQJ3P2BMDCJC2PZGGB63XRQF5PANCNFSM6AAAAAA2SYG3ZU
.
You are receiving this because you authored the thread.Message ID:
@.***>

I have already worked on this feature: PR #7546. Please see the PR, it is still in review.


enhancement: enable better log filtering

Log volumes can be high if k8s health checks are frequent.
Logs may be pretty printed json which is not ideal for grepping or processing with JSON tools like jq

Find a way to reduce log volume (possibly not log health checks?) and dont pretty print JSON; e.g. use one line per JSON object.

Setting the space parameter of the logger config to 0 causes the logger to print one line per log event.
https://github.com/pm4ml/mojaloop-connector/blob/8695adaa5754f09705f061a934c278d798602c8e/src/index.js#L310
Note that this is exposed to the service config.
One problem that may be encountered using jq for log filtering is if not every line printed is a json object. This can be worked around when printing ndjson or jsonl with the following (copied verbatim from my notes on the subject):

Given a log that contains pretty-printed json with some errors, we can add some delimiters and
use --seq to instruct jq to ignore failed parses:
kubectl log -f deploy/some-application | sed 's/^{/'`echo "\036"`'{/' | jq --seq '.'

See --seq in the jq manual for more.


fix for non-linux machines

Fixes #291

OSX needs custom runtimes as well for local invoker to work, so for now it should throw an error on non-Linux machines.


Null Pointer Exception When Saving a Model.

Issue and tracking information
I don't have a special reproducer for this issue, but basically, when making some number of changes to a model and then saving it, we randomly get a null pointer exception and a message that says "Save Failed", even though the save does appear to have succeeded. Our users get very worried that their data isn't being saved. We would like to guarantee that the file is saved and not have this exception occur.
Here is an image of the stack trace:

Developer's time Estimated effort to fix (hours):
Developer's Actual time spent on fix (hours)
Issue reporter to provide a detailed description of the issue in the space below

This one looks related to Issue #390. Did you get this error with the most recent version or was it with an earlier, before we merged Pull Request #403?

I got this error with papyrus built with the newest hash on the papyrus branch: https://github.com/ZeligsoftDev/CX4CBDDS/commit/77e92e9f61dec7181ab17cea2bb1638906a1dde5

Ok, so this is new. I'll investigate. It could be that like other NPEs it may be harmless, and if such, we can suppress it with the mechanism introduced by Pull Request #403. But I'll check that saving is working correctly first.

One more question, which one should have higher priority, this issue or #415?

This issue as it hopefully has a faster turnaround. But if it is taking you a while to diagnose we can reconsider.

Ok.

I haven't been able to reproduce this one yet, but the Papyrus code strongly suggests that this exception occurs after the model has been saved. But there may be other consequences that are not entirely clear, as the code that doesn't get executed tells the command stack that the save is done, and informs listeners that the dirty status of the file changed.
It's not clear why the exception occurs, but I suspect some race condition deep inside plain Papyrus' code.

I suspected that this issue might be related to resources that are loaded in multiple editors. I wasn't able to reproduce the exact same exception but I do see other exceptions when trying to work on a model that has an editable reference model and the referenced model is also open in another editor. These are known issues as the Papyrus does not handle these cases very well and that's why editing was disabled by default. I think we should disable the editing capability of the referenced model for end users or at least put a preference field to explicitly enable this for ICM developers.

@ysroh Didn't we just recently enable the ability to edit the referenced model via. a dependent model? I believe this is something that our users want to be able to do. Unless of course I am thinking of something else.

@ysroh is probably right with his suspicion. The model where I saw this issue was a model that references other ICMs in our workspace.

Correct, We enabled this recently and know that this will cause exceptions if the referenced model is also open and you work on both models. If this capability is a feature needed for all end users then we just need to educate them well about the limitation so they do not open referenced model if the model is already loaded in the current model as a reference. but if this feature is really needed for only some users then I am suggesting turning this off by default since this feature is added for convenience.

I don't believe I had any other model open when I saw this issue, only the top level model. I know other people have seen this issue before which is why I wrote the ticket without a specific reproducer. I would say almost every user will want this capability so having it be an option isn't the best choice here.
If I am wrong, and this issue can only be reproduced when opening multiple models where the saving model references another, then maybe we can add a new warning dialog on the open of a model.

I see. If you only had one model open then this issue is not related to the editing capability. It might be just another exception that we might want to filter out. I am very worried that users will see exceptions without knowing that they had multiple models open. It's not just for the ICM models since you can reference another model if the other model is located in the same project and users will likely work on both models in the same project. I am trying to think how we can keep the number of exceptions down and hopefully filter out all unwanted ones.

The ability to edit a referenced model was explicitly added by issue #368 back in April 2022 as a desired and standard workflow improvement.  Lots of discussion and rationale there.
https://github.com/ZeligsoftDev/CX4CBDDS/issues/368

Understood. We will try to filter out all unwanted exceptions that do not impact the model since I really don't like to see the exceptions. @eposse Can you filter out this exception without reproducing it?

And I know that most exceptions do occur during the reloading stage after saving is done.

I've opened PR #427.

@eposse  Can you give any status on this issue?

Hi. I don't have any updates on this. I can't reproduce it, and from the discussion above, @ysroh suggested that it might be related to multiple models open, they refer to each other and they are edited, but later it is mentioned that the exception occurs when only one model is opened. @ysroh said that we would filter out that exception, which is what I did with PR #427. This PR filters out the exception shown in your original screenshot. If there are other exceptions that need to be filtered, let us know and I'll add them. But without being able to reproduce it, I'm not sure what else we could do at this point.

Can we merge in the PR?

Yes, I'll do that.

It's merged and the build can be obtained here.
Shall we close this one and reopen if we get a more reliable reproducer?

Yes, I think that sounds like a good plan


The #addin directive should import referenced aliases

If a NuGet package (added with the #addin directive) reference another assembly in the package that contains an alias, it will not be referenced properly.
(Reported by @jrnail23 in #382)

@patriksvensson, I'm not entirely convinced this is what's actually going on here.
I'm going to investigate a bit more -- this could just be something I'm doing wrong.

@jrnail23 Ok, perfect!

@patriksvensson, I'm thorougly confused now.
I made a really simple cake script that uses my addins:
#r "./tools/Cake.IISExpress/lib/net45/Cake.IISExpress.dll"
#r "./tools/Cake.Process/lib/net45/Cake.Process.dll"
using Cake.IISExpress;
using Cake.Process;

      // ARGUMENTS
      var target = Argument("target", "Default");

      Task("Something")
          .Does(cc =>
          {
              Verbose(cc.Environment.WorkingDirectory.FullPath);
          });

      Task("Default")
          .IsDependentOn("Something");

      RunTarget(target);

Here's the console output from when I run it:
PS C:\Dev\oss\Cake.IISExpress\src\Examples> .\build.ps1 -Script Example2.cake -Verbosity Diagnostic
All packages listed in packages.config are already installed.
Processing Example2.cake...
Adding Reference: C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake.IISExpress/lib/net45/Cake.IISExpress.dll
Adding Reference: C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake.Process/lib/net45/Cake.Process.dll
Creating script session...
Could not find file Cake.Process, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null.
System.IO.FileNotFoundException: Could not load file or assembly 'Cake.Process, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'Cake.Process, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'
   at System.Signature.GetSignature(Void* pCorSig, Int32 cCorSig, RuntimeFieldHandleInternal fieldHandle, IRuntimeMethodInfo methodHandle, RuntimeType declaringType)
   at System.Reflection.RuntimeMethodInfo.FetchNonReturnParameters()
   at System.Reflection.RuntimeMethodInfo.GetParameters()
   at Cake.Core.Scripting.ScriptAliasFinder.GetParameters(MethodInfo method, ICakeLog log)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

Error: System.IO.FileNotFoundException: Could not load file or assembly 'Cake.Process, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'Cake.Process, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'
   at System.Signature.GetSignature(Void* pCorSig, Int32 cCorSig, RuntimeFieldHandleInternal fieldHandle, IRuntimeMethodInfo methodHandle, RuntimeType declaringType)
   at System.Reflection.RuntimeMethodInfo.FetchNonReturnParameters()
   at System.Reflection.RuntimeMethodInfo.GetParameters()
   at Cake.Core.Scripting.ScriptAliasFinder.GetParameters(MethodInfo method, ICakeLog log)
   at Cake.Core.Scripting.ScriptAliasFinder.<GetAliasMethods>d__0.MoveNext()
   at Cake.Core.Scripting.ScriptAliasFinder.FindAliases(IEnumerable`1 assemblies)
   at Cake.Core.Scripting.ScriptRunner.Run(IScriptHost host, FilePath scriptPath, IDictionary`2 arguments)
   at Cake.Commands.BuildCommand.Execute(CakeOptions options)
   at Cake.CakeApplication.Run(IEnumerable`1 args)

It appears to add the reference to both of my dlls (Cake.Process.dll and Cake.IISExpress.dll), but then when it tries to find the aliases, it says it can't find the Cake.Process.dll.
You have any idea what's going on here?

@jrnail23 Can you enable the fusion log and paste the input here? Would be interesting to see how the runtime tries to resolve the Cake.Process.dll assembly.

Here's the output with fusion log enabled:
PS C:\Dev\oss\Cake.IISExpress\src\Examples> .\build.ps1 -Script Example2.cake -Verbosity Diagnostic
All packages listed in packages.config are already installed.
Processing Example2.cake...
Adding Reference: C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake.IISExpress/lib/net45/Cake.IISExpress.dll
Adding Reference: C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake.Process/lib/net45/Cake.Process.dll
Creating script session...
Could not find file Cake.Process, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null.
System.IO.FileNotFoundException: Could not load file or assembly 'Cake.Process, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'Cake.Process, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'
   at System.Signature.GetSignature(Void* pCorSig, Int32 cCorSig, RuntimeFieldHandleInternal fieldHandle, IRuntimeMethodInfo methodHandle, RuntimeType declaringType)
   at System.Reflection.RuntimeMethodInfo.FetchNonReturnParameters()
   at System.Reflection.RuntimeMethodInfo.GetParameters()
   at Cake.Core.Scripting.ScriptAliasFinder.GetParameters(MethodInfo method, ICakeLog log)

=== Pre-bind state information ===
LOG: DisplayName = Cake.Process, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = file:///C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake/
LOG: Initial PrivatePath = NULL
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: No application configuration file found.
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: The same bind was seen before, and was failed with hr = 0x80070002.

Error: System.IO.FileNotFoundException: Could not load file or assembly 'Cake.Process, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'Cake.Process, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'
   at System.Signature.GetSignature(Void* pCorSig, Int32 cCorSig, RuntimeFieldHandleInternal fieldHandle, IRuntimeMethodInfo methodHandle, RuntimeType declaringType)
   at System.Reflection.RuntimeMethodInfo.FetchNonReturnParameters()
   at System.Reflection.RuntimeMethodInfo.GetParameters()
   at Cake.Core.Scripting.ScriptAliasFinder.GetParameters(MethodInfo method, ICakeLog log)
   at Cake.Core.Scripting.ScriptAliasFinder.<GetAliasMethods>d__0.MoveNext()
   at Cake.Core.Scripting.ScriptAliasFinder.FindAliases(IEnumerable`1 assemblies)
   at Cake.Core.Scripting.ScriptRunner.Run(IScriptHost host, FilePath scriptPath, IDictionary`2 arguments)
   at Cake.Commands.BuildCommand.Execute(CakeOptions options)
   at Cake.CakeApplication.Run(IEnumerable`1 args)

=== Pre-bind state information ===
LOG: DisplayName = Cake.Process, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = file:///C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake/
LOG: Initial PrivatePath = NULL
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: No application configuration file found.
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: The same bind was seen before, and was failed with hr = 0x80070002.

Here's my fusion log for Cake.Process:
*** Assembly Binder Log Entry  (9/14/2015 @ 9:17:39 PM) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  C:\Dev\oss\Cake.IISExpress\src\Examples\tools\Cake\Cake.exe
--- A detailed error log follows.

=== Pre-bind state information ===
LOG: DisplayName = Cake.Process, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = file:///C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = Cake.exe
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: No application configuration file found.
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake/Cake.Process.DLL.
LOG: Attempting download of new URL file:///C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake/Cake.Process/Cake.Process.DLL.
LOG: Attempting download of new URL file:///C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake/Cake.Process.EXE.
LOG: Attempting download of new URL file:///C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake/Cake.Process/Cake.Process.EXE.
LOG: All probing URLs attempted and failed.

*** Assembly Binder Log Entry  (9/14/2015 @ 9:17:39 PM) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  C:\Dev\oss\Cake.IISExpress\src\Examples\tools\Cake\Cake.exe
--- A detailed error log follows.

=== Pre-bind state information ===
LOG: DisplayName = Cake.Process, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = file:///C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = Cake.exe
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: No application configuration file found.
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake/Cake.Process.DLL.
LOG: Attempting download of new URL file:///C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake/Cake.Process/Cake.Process.DLL.
LOG: Attempting download of new URL file:///C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake/Cake.Process.EXE.
LOG: Attempting download of new URL file:///C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake/Cake.Process/Cake.Process.EXE.
LOG: All probing URLs attempted and failed.

*** Assembly Binder Log Entry  (9/14/2015 @ 9:17:39 PM) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  C:\Dev\oss\Cake.IISExpress\src\Examples\tools\Cake\Cake.exe
--- A detailed error log follows.

=== Pre-bind state information ===
LOG: DisplayName = Cake.Process, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = file:///C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = Cake.exe
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: No application configuration file found.
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: The same bind was seen before, and was failed with hr = 0x80070002.
ERR: Unrecoverable error occurred during pre-download check (hr = 0x80070002).

Here's an additional Fusion log:
*** Assembly Binder Log Entry  (9/14/2015 @ 9:39:42 PM) ***

The operation was successful.
Bind result: hr = 0x0. The operation completed successfully.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  C:\Dev\oss\Cake.IISExpress\src\Examples\tools\Cake\Cake.exe
--- A detailed error log follows.

LOG: IJW explicit bind. File path:C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake.Process/lib/net45/Cake.Process.dll.
LOG: IJW assembly bind returned file not found.

*** Assembly Binder Log Entry  (9/14/2015 @ 9:39:42 PM) ***

The operation was successful.
Bind result: hr = 0x0. The operation completed successfully.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  C:\Dev\oss\Cake.IISExpress\src\Examples\tools\Cake\Cake.exe
--- A detailed error log follows.

LOG: IJW explicit bind. File path:C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake.Process/lib/net45/Cake.Process.dll.
LOG: IJW assembly bind returned file not found.

That path that's returning file not found (C:/Dev/oss/Cake.IISExpress/src/Examples/tools/Cake.Process/lib/net45/Cake.Process.dll) does in fact exist on my machine.

Ok, the problem lies within the ScriptRunner which uses Assembly.LoadFile instead of Assembly.LoadFrom. Should be changed but we need to examine the implications of this.
See http://blogs.msdn.com/b/suzcook/archive/2003/05/29/57143.aspx for more information.


Restructure core

Pull Request Test Coverage Report for Build 479

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.2%) to 97.488%

Files with Coverage Reduction
New Missed Lines
%

codefeedr-core/src/main/scala/org/codefeedr/pipeline/Pipeline.scala
1
97.96%

Totals

Change from base Build 475:
-0.2%

Covered Lines:
621

Relevant Lines:
637

💛  - Coveralls


index.html:

Make sure these boxes are checked before submitting your issue - thank you!

[ ] I have checked the superset logs for python stacktraces and included it here as text if any
[ ] I have reproduced the issue with at least the latest released version of superset
[ ] I have checked the issue tracker for the same issue and I haven't found one similar

Superset version
Expected results
Actual results
Steps to reproduce
in superset/index.html there are multiple statements like  this:

I am not familiar with html, but I think the nested quotes is wrong, right?

That's a template, is the rendered html broken? If not, not an issue.


⚠ Bofrost.at has degraded performance

In ff7afcf, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1160 ms

Resolved: Bofrost.at performance has improved in 4e77090.


Update MD file on new branch 2017-45-13_01-11-52

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/updateTestRef.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Posible memory leak issue

Hello,
First of all great library, thank you. I think you have a memory leak in your code that is causing OutOfMemory errors. I have added these lines of code in the PorterImageView class and they are gone now. I'm not really sure if they are all needed.
    @Override
    protected void onDetachedFromWindow()
    {
        super.onDetachedFromWindow();
        if (maskBitmap != null && !maskBitmap.isRecycled()) maskBitmap.recycle();
        if (drawableBitmap != null && !drawableBitmap.isRecycled()) drawableBitmap.recycle();
    }

 private void createMaskCanvas(int width, int height, int oldw, int oldh)
    {
            ...
            Bitmap oldBitmap = maskBitmap;
            maskBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
            if (oldBitmap != null && oldBitmap != maskBitmap && !oldBitmap.isRecycled()) oldBitmap.recycle();
            maskCanvas.setBitmap(maskBitmap);

            ...

            oldBitmap = drawableBitmap;
            drawableBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
            if (oldBitmap != null && oldBitmap != drawableBitmap && !oldBitmap.isRecycled()) oldBitmap.recycle();
            drawableCanvas.setBitmap(drawableBitmap);
            ...
        }
    }

Hi r1m,
i'm trying your solution but i get this exception:
java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@7a2da54
Have you found other solution?
Thanks

No, sorry. This solution worked for me.

I applies this changes:
private void createMaskCanvas(int width, int height, int oldw, int oldh) {
boolean sizeChanged = width != oldw || height != oldh;
boolean isValid = width > 0 && height > 0;
if(isValid && (maskCanvas == null || sizeChanged)) {
maskCanvas = new Canvas();
Bitmap oldBitmap = maskBitmap;
maskBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
if (oldBitmap != null && oldBitmap != maskBitmap && !oldBitmap.isRecycled()) oldBitmap.recycle();
maskCanvas.setBitmap(maskBitmap);
        maskPaint.reset();
        paintMaskCanvas(maskCanvas, maskPaint, width, height);

        drawableCanvas = new Canvas();
        oldBitmap = drawableBitmap;
        drawableBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
        if (oldBitmap != null && oldBitmap != drawableBitmap && !oldBitmap.isRecycled()) oldBitmap.recycle();
        drawableCanvas.setBitmap(drawableBitmap);
        drawablePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        invalidated = true;
    }
}

And this:
@Override
protected void onDetachedFromWindow() {
    super.onDetachedFromWindow();

    if (maskBitmap != null && !maskBitmap.isRecycled()) maskBitmap.recycle();
    if (drawableBitmap != null && !drawableBitmap.isRecycled()) drawableBitmap.recycle();
}

It's possible I missed something because I have a very simple use case. I only show one shape image view at the time so maybe if you use something more complex my code doesn't work.

Did anyone solve this memory issue?

I am getting the same issue, i just used on a single imageview in my whole project!


New rule idea: Rails/EnumNotNull

I just realized that I wasn't setting a NOT NULL constraint for any of my enum columns. This came to my attention when my API test returned null for one of my state columns, and I realized that null was never a valid value for this particular state column. I think it's a much better practice to define an integer value that represents nothing, e.g. none: 0, if that's necessary. This way you can also control the string value that represents 0, and the ActiveRecord helper methods are consistent when you use a _prefix. E.g. you can call model.foo_type_none? instead of !model.foo? (which checks for the opposite of presence.)
Technically nil is a valid value for an enum column, and it just means that the column hasn't been defined yet. But I think that this will lead to errors more often than being a useful default.
My idea is to scan the Rails model source code for enum calls and parse out the attribute. It would find the following enums:
class Model < ApplicationRecord
  enum state: {
    pending: 0,
    complete: 1,
  }

  enum :foo => %w[bar baz]
  enum 'bar' => %w[hello world]
  enum "baz" => %w[one last example]
end

Then it would raise 4 errors for the following migration:
class CreateModels < ActiveRecord::Migration[5.2]
  def change
    create_table :models do |t|
      t.integer :state
      t.integer :foo
      t.integer :bar
      t.integer :baz
    end

    change_column_default :models, :state, from: 0, to: 0
    change_column_default :models, :foo, from: 0, to: 0
    change_column_default :models, :bar, from: 0, to: 0
    change_column_default :models, :baz, from: 0, to: 0
  end
end

Saying that all of the integer columns must be written as:
      t.integer :state, null: false
      t.integer :foo, null: false
      t.integer :bar, null: false
      t.integer :baz, null: false

This would have been a very helpful heuristic for me, because I just forgot that integers can be nil, even when I'm setting the default to 0. Obviously it wouldn't handle all of the cases (custom DSLs, metaprogramming, or calls to add_column and change_column_null), but it would be nice to catch 99% of these cases.
It would be nice if this was configurable option, and I wouldn't mind if it was disabled by default. But I'd definitely like to use it in my own projects.

We're in the process of moving all Rails-related functionality to a standalone library (gem) named rubocop-rails. Please, migrate this issue to its issue tracker https://github.com/rubocop-hq/rubocop-rails/issues/

Thanks, I moved it to https://github.com/rubocop-hq/rubocop-rails/issues/15


fix: close file after opening

You must always close a file after opening it. The current code might not work on Windows + PyPy, since it's assuming the garbage collector will run (which it won't on PyPy) & the file descriptor will be released (which is required on Windows).

@toastdriven can we get this merged?

closing since at this point the project seems to be unmaintained


Searching for blobs based on the given properties

At the time of writing the blob store is a simple key/value store for big binary data.
But if you lose the key, you have no way to search for the blob.
At most, you can browse through all the blobs and check if this is the blob you need.
It would be nice if I could also search for my supplied properties.

Normally this can be done with a database. So you can simply throw all your properties and the blob id into a database and do the searching stuff by your own. For smaller installations, however, this brings with it additional complexity.
Therefore, with this small service in small installations, it would be worth considering bringing your own small database with you. Since the market is huge, I had to make a pre-selection based on the following criteria.

Integrable: In the first step, it should not be a large database with its own server, but a small embedded database
(However, it is intended that a corresponding database driver can be retrofitted later. A corresponding abstraction (as with the storage providers) must be implemented)
Can be switched off: this feature must be switched off, since multi-instance operation on the same fileset is usually not intended for embedded DBs
Persistent: The DB Engine should be persistent, so that you don't have to re-index all properties every time you restart.
Footprint: in order not to go beyond the scope of the service, the footprint should be small
Document-Based: The engine should be schemaless and document-based. The supplied properties are not static and should not have to be configured as part of the service. Nevertheless, you have to be able to search for certain properties (document fields) comfortably.
High Doc Count: Ideally, the amount of data should be unlimited, or at least very high, since the service was built for exactly this purpose.
Multi-Tenant: The database must also allow multi-tenant operation.

After thorough research and consideration, I came across Project Genji (https://genji.dev/). This forms a layer above Peeble (https://github.com/cockroachdb/pebble), which is implemented specifically for document-based searches.

Hmm, genji semms to be a little unstable at the moment. So i start with a database server implementation like mongodb or orientdb.

implementing mongodb as query engine.
adding own simple query language

i close this item. For further implementations create seperate items


Update qiyimedia.rb

Update qiyimedia.rb

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Since the url is un-versioned and there is no appcast, the version should remain as :latest and the sha256 should remain as :no_check.


Addition of cropping.py

Sample script to index into either time, channels, z, y, and x into an existing ome-zarr store and create a new ome-zarr store with crops. Code is currently structured as a class with some helper methods but can be re-factored as some utils methods that are used in the script directly (without the class structure).

As discussed in our meeting with @talonchandler. I think the convenience functions like get_positions andget_channel_indices would be great to have inside iohub. @ziw-liu what would be a good place to have these (iohub.ngff?)

Can you explain why is list(plate.positions()) needed as a separate API?
Also note that NGFFNode.get_channel_index() exists.

Feel free to ignore this comment because no one asked for my review.
Since the unified API was merged, I think it would be nice for this function to take a BaseFOVMapping as input and crop to HCS ome-Zarr. This could help crop any format without converting to ome-zarr and kind of "future proof".

Feel free to ignore this comment because no one asked for my review.
Since the unified API was merged, I think it would be nice for this function to take a BaseFOVMapping as input and crop to HCS ome-Zarr. This could help crop any format without converting to ome-zarr and kind of "future proof".

The catch here is that OME-Zarr UAPI is still pending...


ETL Drug Approvals KP into RTX-KG2.10.2pre

Here are the links to TSV dumps (nodes and edges) for the Drug Approvals KP. URLs provided by @amykglen :
nodes: https://db.systemsbiology.net/gestalt/KG/drug_approvals_kg_nodes_v0.3.3.tsv
edges: https://db.systemsbiology.net/gestalt/KG/drug_approvals_kg_edges_p0.3.3.tsv.gz

just an FYI that a more recent version of the Drug Approvals KP is available (0.3.4) - you can always see the URLs for the latest nodes/edges files here:
https://github.com/RTXteam/PloverDB/blob/multiomics/app/config_dakp.json#L2-L3

doing this development work in branch issue-412 and on EC2 host stevekg2pre.rtx.ai

Also apparently the extract-clinicaltrialskg.sh script is not properly curl-ing the TSV file from the ISB server; it is set up with a workaround to copy the TSV file from the S3 bucket. I'm going to fix that in this issue as well.


[DRAFT] Improve text line wrapper

DRAFT (need tests and refactoring)

Fix text line wrapping
Fix white spaces at the beginning of a line

It works better now


CNV-35729: Improve modal save while there are changes occurred in the back-end - part 2 network

📝 Description
Changing from using k8sUpdate to K8sPatch as it can cause the promise to fail if the VM has changed

/lgtm

/cherry-pick release-4.15


How to request attestation document (+set user_data field)

What function do I call to request the attestation document, and how do I set the user_data field? Can't find a pointer to the right command anywhere in the docs. Thanks!

The attestation API is part of the https://github.com/aws/aws-nitro-enclaves-nsm-api/ repository and I see you opened a similar question there as well: https://github.com/aws/aws-nitro-enclaves-nsm-api/issues/9.
I will answer the question there.


setting the anchorOrigin property on badge component overrides showZero and insivible behavior

Current Behavior 😯
Setting the "anchorOrigin" prop makes a badge visible regardless of its "showZero" and "invisible" properties.
Expected Behavior 🤔
A badge's visibility should be toggled by the properties "showZero" and "invisible", regardless of where the badge's "anchorOrigin" is set
Steps to Reproduce 🕹
example here:
https://codesandbox.io/s/hk07w
<Badge color="secondary" showZero={false} invisible={true} badgeContent={0} anchorOrigin={{vertical:"center", horizontal: "left"}}>
Results in a visible badge

@dylanmartin Check the warning in the console. Fix it and it should be good.


chore: release version 0.2.0

Landed in https://github.com/metarhia/metasql/commit/c21c02d4a086aa35ec9d529bda4f81d7d9e0d7a7


[Java] Add JDK 22 support

JDK 22 was released in March but the image mcr.microsoft.com/devcontainers/java only goes up to version 21.

Hi 👋
We only provide image support for LTS versions of Java. Since v22 is not LTS, we won't be publishing the image. However, we can update the Feature (https://github.com/devcontainers/features/issues/1084) to successfully install v22 if needed.


Question on Variables: How to loop over multiple values

Hi,
I'm new to grafana scenes and I've a little question, let's say I have something like this:
//[...]
function getMainPanels(id_list: number[] = [0, 1, 2, 3]) {
  return id_list.map(id => getMainPanel(id))
}

//[...]
export function getBasicScene(){
//[...]
  return new EmbeddedScene({
    $timeRange: timeRange,
    $data: queryRunner,
    body: new SceneFlexLayout({
      direction: 'column',
      minHeight: 200,
      children: getMainPanels(),
    }),
//[...]
  });

Where getMainPanel will return a SceneFlexItem with its corresponding VizPanel. For now that works great but, how can I pass that id into the SceneQueryRunner ?
I suppose I've to create a variable but have no idea on where/how to set it on each iteration etc.
For now the list [0,1,2,3] is obviously static, but will come from a query variable at some point. Don't know if that matters or not.
Thanks for any provided support!
A simple link into a testfile where this is covered might be more than enough! Thank you!

You can use SceneByFrameRepeater to repeat a layout for each series/frame returned by a query (this is A LOT more efficient than repeating a panel + query based on a query variable). As there is only the single query, instead of a query variable query that generates a layout for each panel needs to query data.

Thanks for your reply @torkelo !
I'm checking the demos and see I have much to learn. For example, in https://github.com/grafana/scenes/blob/2e344dd328ddadbfa30f3058bf8caf94b5f4acb7/packages/scenes-app/src/demos/panelRepeater.tsx#L6 I don't know how SceneByFrameRepeater knows how many repeats should be done. I suppose it's implicitly set by the query but for a non-main-web developer this absolutely looks like dark magic
Similar happens with the drilldown example: https://github.com/grafana/scenes/blob/2e344dd328ddadbfa30f3058bf8caf94b5f4acb7/packages/scenes-app/src/demos/withDrilldown/panels.tsx#L4 Don't know where the "frame" is defined / what is iterating exactly. (Skipping it is something related with temperature)
Any clues on how repetitions are done would be appreciated, but, in any case, at least I've a point to start with, not just a dead-end.
Thank you!

I don't know how SceneByFrameRepeater knows how many repeats should be done

Well, it repeats a layout with a graph + stat for each series returned by the query.
The DataFrame is the data structure returned by queries, you can print it to the console to inspects it's properties


404\Not Found

Invalid(404)

#7759

@Helix-DB3 Thank you for your feedback. Could you please provide more details about the document that you are referring to? The link provided is for https://github.com/sessions/verified-device and is not managed by Microsoft.
Hope this helps!
Thanks
Sri

@msbemba

@AlexJerabek The document https://docs.microsoft.com/en-us/legal/microsoft-365/ios-terms?view=o365-worldwide is already updated with the wordings - "Microsoft Defender for Endpoint on iOS application license terms"
Hope this helps!
Thanks
Sri

@msbemba Thank you very much for the contribution and sharing this explanation. @Helix-DB3 Hope this comment is helpful for you. If you see a documentation update is required, please feel free to open an issue for the same. We proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Error when loading pre-trained weights for vit_l16

Exception: URL fetch failure on https://github.com/faustomorales/vit-keras/releases/download/dl/ViT-L_16_imagenet21k+imagenet2012.npz: 404 -- Not Found

Thanks so much for raising this! Looks like there was an error uploading weights to GitHub. This is fixed as of f33a69b34af48aa8d37fc45787fbe49bc303095c (which is now v0.0.5 on PyPi).


ERC-721 extension

An ERC-721 extension to demonstrate how to integrate an ERC-721 NFT.

gj Damu! Extension is working nicely, just added some comments and nitpicks, almost all of them are just copys, messages or variable names.

Thanks!!

Sorry Damu totally missed your updates until this week. All updates look good to me 🙌
Only pushed some tweaks on the Readme/description from ERC721 page, to make them all consistant.
Feel totally free to undo any changes or tweak them however you see them better! Was just quicker to push than report :)

Thanks @Pabl0cks for the review and the tweaks!!

Merged this. I will add the extension to the extension's source of truth.


9FUS Stuck in blue light blinking loop

Hi all, I have tried flashing every firmware including yi-hack-v4, MStar and now I am trying Allwinner. All have failed to flash but I think Allwinner will work. I have a 9FUS 1080p Home 2. I have tried to flash Allwinner but the blue light just blinks consistently. I have copied all the files from the .tar file to the root of two SD cards but to no avail. Am I doing anything wrong?

All solved now, Following the steps here: https://github.com/roleoroleo/yi-hack-Allwinner/issues/97#issuecomment-662959850


Wallet process/DB not resilient to sudden process termination

I've got an occasional bugcheck on a Windows box due to a buggy NVidia driver.
What I've noticed is when this happens I often see the attached Wallet splash status, presumably due to DB check or sync.  It lasts a very long time. Not sure what logs to examine?
Given the ever growing cost of sync can we harden the for this case e.g. power outage to handle (i.e. DB transaction semantics)?

The blockchain synchronization and the "activation of best chain" is handled by zend - not by the GUI. I think this issue needs to be taken to the ZEN Core project.

Can this issue be closed as it's not a Swing Wallet one ?

@zennermac should be able to close this one.


Error: Request failed with status code 413. "Payload Too Large"

Description of the bug
I achieve an error while trying to create a new task in cvat using Onepanel. I can`t upload a file more than 4Mb size.
CLI version: v1.0.2
Manifest version: v1.0.2
API version: v1.0.2
Web UI version: v1.0.2
Kubernetes information

Cloud provider: Microk8s
Kubernetes version: 1.22.2

Machine information

OS: Ubuntu 18.04
Browser:  Chrome

Screenshots
While uploading I don`t have an icon under "Select files" to click Connected file share.

hi, what's the version of your cvat?


DxPivotGrid & DxChart integration

I am trying to achieve DxPivotGrid & DxChart integration using below code snippet
Template:
    <dx-pivot-grid style="width:600px;display:block" [(dataSource)]="pivotSource" [allowSorting]="true"
        [allowSortingBySummary]="true" [allowFiltering]="true" [allowExpandAll]="true"  [showBorders]="true"
        [fieldChooser]="{enabled: true}"
        [fieldPanel]="{visible: true}"
onInitialized="pivotOnInitialized($event)">
    </dx-pivot-grid>

<dx-chart [commonSeriesSettings]="{type: bar}" [(dataSource)]="chart" onInitialized="chartOnInitialized($event)"></dx-chart>

Component:
constructor() {
        this.pivotSource =
        {
            store: {
                type: "xmla",
                url: "http://XXXXXXX/olap/msmdpump.dll",
                catalog: "XXXXXXXX",
                cube: "XXXXXXXX"
            }
        }

    }

chartOnInitialized($target) {
       this.chart = $target.component;
    }

    pivotOnInitialized($target) {
        $target.component.bindChart(this.chart, {
                dataFieldsDisplayMode: "splitPanes",
                alternateDataFields: false
            });
    }

My PivotGrid is working fine. But, I do see below error in browser console and Chart control is empty.
dx.all.js:9 E2001 - Invalid data source. See:
http://js.devexpress.com/error/16_1/E2001

Could you please guide me on this - how to achieve DxPivotGrid & DxChart integration?
My Environment is-
Angular2 version RC5
devextreme-angular2 version: 16.1.5

At the moment, there is a problem that the onInitialized event is not raised. See #14 . To implement chart integration in the pivot grid, use my sample from the How to implement dxChart with dxPivotGrid integration in Angular 2 ticket.

Thanks @GoshaFighten  for quick response.
I used (onContentReady)="pivotGridInitialized()" and I can see line chart.
Can you tell me which types of charts it will support for this integration? any reference link?

This error usually occurs if dxChart does not have a data source. So, I think your chart property is null at the moment the chart is initialized. I suggest you set the default value of this property to an empty array. This should resolve the issue.
chart = [];
The bindChart method accepts only a dxChart instance. See the bindChart(chart, integrationOptions) help topic.

Thanks @GoshaFighten for your help. :+1:


Root password

Have you read the Important information text above

[X] Yes i did

Current behavior
I am running docker desktop. Within the container, exec, I run the following and permission is denied.
chown 1000:1000 /srv/palworld/game
Running this requests the root password
su root chown 1000:1000 /srv/palworld/game/
Desired behavior
Root by default.
Links to screenshots
No response
To Reproduce
su root chown 1000:1000 /srv/palworld/game/
Software setup

OS: Windows
Docker: 4.26.1

Hardware setup

vCPU: 16
RAM: 32
Disk: 1000

Additional context
No response

nvm

Hey @ZakSham
Hey, the Base-Image of SteamCMD is on purpose under the steam usr with 1000, so this cant run under root.
Was this what you found out? Or do you have something to share?

Hi Jammsen,
Thank you for the reply. I was able to reset the password and run chmod as root but that didn't fix the issue.
This is what happen after running. I have added a folder and tried to run chmod as non-root but permission is denied too.
2024-01-22 12:25:22 >>> Doing a fresh install of the gameserver
2024-01-22 12:25:22 tid(11) burning pthread_key_t == 0 so we never use it
2024-01-22 12:25:22 Redirecting stderr to '/root/Steam/logs/stderr.txt'
2024-01-22 12:25:22 Logging directory: '/root/Steam/logs'
2024-01-22 12:25:22 [  0%] Checking for available updates...
2024-01-22 12:25:23 [----] Verifying installation...
2024-01-22 12:25:23 Steam Console Client (c) Valve Corporation - version<PHONE_NUMBER>
2024-01-22 12:25:23 -- type 'quit' to exit --
2024-01-22 12:25:23 Loading Steam API...OK
2024-01-22 12:25:23
2024-01-22 12:25:25 Connecting anonymously to Steam Public...OK
2024-01-22 12:25:27 Waiting for client config...OK
2024-01-22 12:25:32 Waiting for user info...OK
2024-01-22 12:25:32 ERROR! Failed to install app '2394010' (Missing file permissions)
2024-01-22 12:25:33 >>> Doing an update of the gameserver
2024-01-22 12:25:33 tid(76) burning pthread_key_t == 0 so we never use it
2024-01-22 12:25:33 Redirecting stderr to '/root/Steam/logs/stderr.txt'
2024-01-22 12:25:33 Logging directory: '/root/Steam/logs'
2024-01-22 12:25:33 [  0%] Checking for available updates...
2024-01-22 12:25:33 [----] Verifying installation...
2024-01-22 12:25:33 Steam Console Client (c) Valve Corporation - version<PHONE_NUMBER>
2024-01-22 12:25:33 -- type 'quit' to exit --
2024-01-22 12:25:33 Loading Steam API...OK
2024-01-22 12:25:33
2024-01-22 12:25:35 Connecting anonymously to Steam Public...OK
2024-01-22 12:25:43 Waiting for client config...OK
2024-01-22 12:26:10 Waiting for user info...OK
2024-01-22 12:26:10 ERROR! Failed to install app '2394010' (Missing file permissions)
2024-01-22 12:26:11 >>> Starting the gameserver
2024-01-22 12:26:11 Checking if config exists
2024-01-22 12:26:11 No config found, generating one
2024-01-22 12:26:11 cp: cannot stat '/palworld/DefaultPalWorldSettings.ini': No such file or directory
2024-01-22 12:26:11 Setting public ip to <IP_ADDRESS>
2024-01-22 12:26:11 sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
2024-01-22 12:26:11 Setting public port to 8211
2024-01-22 12:26:11 sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
2024-01-22 12:26:11 Setting server name to jammsen-docker-generated-###RANDOM###
2024-01-22 12:26:11 sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
2024-01-22 12:26:11 Found standard template, using random numbers in server name
2024-01-22 12:26:11 sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
2024-01-22 12:26:11 Server name is now jammsen-docker-generated-19784
2024-01-22 12:26:11 Setting server description to Palworld-Dedicated-Server running in Docker by jammsen
2024-01-22 12:26:11 sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
2024-01-22 12:26:11 Setting server password to serverPasswordHere
2024-01-22 12:26:11 sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
2024-01-22 12:26:11 Setting server admin password to adminPasswordHere
2024-01-22 12:26:11 sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
2024-01-22 12:26:11 Setting max-players to 32
2024-01-22 12:26:11 sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
2024-01-22 12:26:11 /servermanager.sh: line 73: ./PalServer.sh: No such file or directory

Do you need still help?

Yeah, I'm still stuck on this issue in the comment above. Any suggestions could be appreciated.

Create a user on the host with userid 1000, disable the user by giving him no password.
After add this user to the docker group "usermod -aG docker username" i think it was.
Do a fresh install over this user when you have added the user to docker-group if you dont want to do this, then just give him chown or chmod to this directy and try again.

I tried that and it shows it's already created and shown here at he bottom of this list. I also tried --- chown -R steam /srv/palworld/game--- and restarting but no luck.
PS C:\Users\Hosting> docker exec -it palworld2 cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
steam:x:1000:1000::/home/steam:/bin/sh
I tried a fresh install using the following to ensure root wasn't trying to run.
docker run -d -u steam --name palworld [container name]
Any advise is appreciated. Thanks again.

I don't know why but this is my fix:
#reset root password
docker exec -itu 0 palworld passwd
su root
chown -R 1000:1000 /palworld
The did the trick.

Very weird, might be down to your custom setup.
Also could please clarify something for me?
You wrote:

Software setup
OS: Windows
Docker: 4.26.1

Do you mean Docker-Desktop or WSL2 under Windows?
What Docker-Version is that? the current is 25.0.0 before that it was 24 and 23 and 20 and 19, not sure how you can have 4.x.y

Docker Desktop


Fixed datetime overflow

Please makes sure these boxes are checked before submitting your PR, thank you!

[x] Make sure you follow Element's Contributing Guide.
[x] Rebase before creating a PR to keep commit history clear.
[x] Add some descriptions and refer relative issues for you PR.

修复datetime组件头部输入框溢出

Coverage remained the same at 35.833% when pulling 0c899f0b3bf73c1ba06243b4c6514c9c270af7a8 on pixcai:master into 9d46c428bb5931947a6b425ffb20683e0bacd879 on ElemeFE:master.

Coverage remained the same at 35.833% when pulling 0c899f0b3bf73c1ba06243b4c6514c9c270af7a8 on pixcai:master into 9d46c428bb5931947a6b425ffb20683e0bacd879 on ElemeFE:master.

插一句，用 display: table-cell 不是更靠谱么？
另外，PR 是不是应该 rebase 后才能 approve？

Coverage increased (+1.5%) to 37.301% when pulling cf0b3e86814367edebf8198b4a96e3e793dfc053 on pixcai:master into 9d46c428bb5931947a6b425ffb20683e0bacd879 on ElemeFE:master.

Coverage remained the same at 37.582% when pulling ffe4bddb320576a7349dde3c85f612475aea2538 on pixcai:master into 815bdd47d0edae8856cc94674c8683fd285d4428 on ElemeFE:master.

我用 table-cell 重写了样式，先关了


server: fix vpc with private gateways cannot be removed when remove an acount

Description
This PR fixes the bug below
(1) create an account, login and create a vpc
(2) login as root admin, create a vpc private gateway.
(3) delete the account
Expected result: vpc is removed.
Actual result: vpc is "Inactive" but not removed.
with this PR, vpc is removed as expected.

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[ ] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[x] Major
[ ] Minor
[ ] Trivial

Screenshots (if appropriate):
How Has This Been Tested?

@weizhouapache would the private gateway be removed or orphaned after the vpc is deleted? It seems to me the network for the pgw shouuld be removed as well, no?

@DaanHoogland
I just tested again. I could not reproduce the issue in <IP_ADDRESS>. closing this PR.


Launch tracking

Overall documentation for building an Exercism track lives at https://exercism.org/docs/building/tracks/new
This issue helps keep track of the tasks you're working on towards launching this track.
The next steps are:

[x] Join our community
[x] Select programming language variant (if applicable)
[x] Select testing framework
[x] Add the first exercise
[x] Add initial exercises
[ ] Setup Continuous Integration
[ ] Prepare for launch
[ ] Find Maintainers
[ ] Launch!
[ ] Implement tooling
[ ] Prepare for open source contributions from strangers

Once you've finished a task, you can check them in this list.
Questions
Please ask if you have any questions or if anything is confusing!

Hi @ErikSchierboom ,
I am currently preparing for the university entrance exam, which is an important exam that determines my career in Turkey, I will take the exam on June 8th and I don't have much time, I have cut a lot of time, but this is temporary and I will come back and complete the exercises to 20, I just wanted to mention the reason why the process has slowed down.

Sure. Good luck!

It's been 20 exercises, what should we do now?

Basically just to follow the steps listed above. So next up would be to setup continuous integration.

Basically just to follow the steps listed above. So next up would be to setup continuous integration.

I had a little familiarity with docker, I could basically do something with it, -although not very detailed-. but I'm really completely stuck on the test.yaml file. i couldn't even test it on my local, i got an error when i tried docker-compose. i'm not clear on how to install wine with yaml, how to bind to unix* and run test cases.

You can't test github actions locally, which is admittedly annoying. For CI, we can do two things:

Use a Windows test runner and run the scripts
Use a Linux test runner and use the test runner Docker image I'll have a think

just to be sure, if I write a terminal code that will test all the exercises in the terminal in windows operating system and this terminal's native language is batch language, can we run it as a test-runner? but as I said, batch language natively supports only windows.

if I write a terminal code that will test all the exercises in the terminal in windows operating system and this terminal's native language is batch language, can we run it as a test-runner

No, because we can't run Windows docker images in our production environment. But such a script could run in CI, so yes, that would be really helpful.

Hi, I made an test-runner experiment and It looks good for now, but the batch language is native to the windows operating system, so it works with the efficiency of an emulator, which means that unfortunately some exercises did not pass the test-runner.
you can see the experimental branch: https://github.com/exercism/batch/tree/test-runner
shell script(Unix* shell script): https://github.com/exercism/batch/blob/test-runner/bin/test-runner.sh
linked called test-runner(batchfile and works on wine): https://github.com/exercism/batch/blob/test-runner/bin/test-runner.bat

here one image which works well:

here one which sometimes different to windows: (should be all passed)

here one which got crashed:

I assume that the failing solutions don't do anything "weird"?
p.s.

I made an test-runner experiment
The test runner name is something we use for, well, test runners, like https://github.com/exercism/batch-test-runner You might want to call this a CI script of test verification script or something to reduce confusion.

I guess I don't understand what you mean, batch is a very complex language (as interpreter) and even an advanced tool like wine can't emulate it as well as windows. Every language works best in its natural environment.

Okay, clear.
@iHiD It sounds like the Batch track might not work well on Linux, which is sort of to be expected. Do we still want a test runner, even if that fails for perfectly valid solutions? I also assume that most people doing the Batch track will work on Windows. Do we maybe want to disable the test runner for this track?

Hi @ErikSchierboom , Is there any news to move? @iHiD might not have seen your comment.

I'll notify him

Well, I'll do as soon as.

Here new version: https://github.com/exercism/batch/blob/test-runner/bin/test-runner.bat

@GroophyLifefor Great. Could you purposefully have one example implementation fail one or more tests to see if CI then fails?

@ErikSchierboom it was great, even if the exercise is faulty it continues but since it was in the last exercise the test is completely finished, no problem

Thanks!

@ErikSchierboom so, is "Setup Continuous Integration" part done? What is the next step?

@GroophyLifefor check the steps at https://exercism.org/docs/building/tracks/new to see what needs to be done next

Reference to a pr that about this issue: https://github.com/exercism/cli/pull/1157

@ErikSchierboom Can I start maintaining alone? I think over time people will come, it's hard to find someone at this stage (not launched).

Yes that is fine

@ErikSchierboom when https://exercism.org/tracks/batch will be activated?

@GroophyLifefor It'll be up in about 10 minutes or so!

https://exercism.org/tracks/batch is missing a track icon. Was it supposed to go live already?

https://exercism.org/tracks/batch is missing a track icon. Was it supposed to go live already?

I submitted in https://github.com/exercism/website-icons/issues/179 two weeks ago, It's now fixed, we apologize for the inconvenience

Track is launched so we can close this issue.


Add Built-In Transform support for Apple Log

Related to the request to add Apple Log support to the OCIO Configs:
https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES/issues/120
We should add built-in transform support to the library to enable the configs to be LUT-free.
Reference implementation:
A CTL-based Apple Log IDT was recently added to aces-dev at:
https://github.com/ampas/aces-dev/tree/dev/transforms/ctl/idt/vendorSupplied/apple
Documentation:
The official white paper, and example 1D LUT (.cube) are located here:
https://developer.apple.com/download/all/?q=Apple log profile

Are you looking for a NamedTransform for the curve in addition to the ColorSpace transform? Or just the latter?

I'm reopening this issue after looking at some purported footage in Apple Log space and it looks questionable. But I'm not sure if it's our transform or the media.
@rkmolho Could you direct us to some known good test footage?

We shot some of our own test footage of charts and based on that, I think the results actually are pretty much as expected. (We were really thrown off by the samples that we had been provided earlier, which must not have been done correctly.) If we get official samples from Apple, that would definitely add some certainty around what to expect. In the meantime, I'll close this.
I noticed that the half-domain Lut1D eventually overflows at extreme values. It would be nice to revisit that, but that could be done as a follow up. Given that the nonlinearity has a hard-clip on the bottom end, probably the best approach would be to use a normal-domain Lut1D that covers [0,2] in Apple Log space, with a matrix in front to set the domain.


Doesn't do anything

Operating System (+Version): macOS 10.13.6
VS Code Version: 1.28.2
beautify Version: 1.4.7

NOTE: Please provide code snippets instead of screen shots. Your issue needs to be replicated, and we need the failing code (text) to do this.
Note: I just installed Beautify for the first time. I've used the Beautify package for Atom, which works great.
Provide the settings you use:
(VS Code workspace and user settings, .jsbeautifyrc, .editorconfig)
$ cat ~/.jsbeautifyrc
cat: /Users/mstratton/.jsbeautifyrc: No such file or directory

$ cat ~/.editorconfig
root = true

[*]
end_of_line = lf
insert_final_newline = true

[*.py]
indent_style = space
indent_size = 2

Action performed
With a saved JSON file open with the contents:
  {"access_token":"whatever","created_at":1540410886}

Press F1, and select "Beautify file".
Expected results
Expected contents of file to be formatted, something like this:
{
  "access_token": "whatever",
  "created_at":<PHONE_NUMBER>
}

Actual results
Nothing happened. The file contents are the same as before.
Additional Notes
I opened Developer Tools, ran the same steps above, and nothing appeared in the console.
js-beautify
Maybe I need to install js-beautify? I tried that: npm -g i js-beautify, then in VSCode, called the "Reload Window" command. I tried the same steps described above, and got the same results.
js-beautify config files=
Maybe I need to create a js-beautify config file?
cat > ~/.jsbeautifyrc
{}

Tried same reproduction steps as above, and got the same result.

Enable editor.FormatOnSave

Enable editor.FormatOnSave in user settings

I don't want to format on save. I'm trying the Beautify file command. Maybe I don't understand what Beautify file is supposed to do (it appears to do nothing)?

Odd.
You don't need to install js-beautify, it's included internally. You don't need to have a config file. I can't seem to replicate the issue unfortunately.

Closing due to lack of response.


[Issue-649]change  spark-csv 1.4 to spark-csv 1.2

Code Modifications done:

Change to use spark-csv 1.2, Because spark-csv 1.4 will create no task serializable issue on cluster mode.
link issue #649
2 .  Modified code to ignore leading and trailing whitespace option in univocity parser and remove trim method from surrogate step while processing a record. (fixed by @manishgupta88 )

@gvramana please review

@QiangCai Can you please raise a issue with the exception details of the exception you are getting when using spark-csv1.4

As discussed, there is a bug in spark-csv 1.4 which was upgraded to few days back, hence we are reverting back to spark-cav 1.2
LGTM.

retest this please

@Vimal-Das I created Issue #649 to show the exception details.

LGTM, @QiangCai can you rebase, i shall merge.

@Vimal-Das rebase done.

retest this please


Enable unpack to filter for specific layers instead of all layers of a type

Description
This PR adds a flag --filter (-f for short) that can be used to filter which parts of a Kitfile are unpacked in a kit unpack operation. In general, the flag takes the format
<types>:<filters>

where <types> is a comma-separate list of sections in the kitfile to unpack (e.g. model,datasets,kitfile), and <filters> is an optional comma-separated list of filters to apply to those types. To unpack only models and datasets, you would use the command
kit unpack <model> --filter=model,datasets

To unpack only the training-data dataset, you would use
kit unpack <model> --filter=datasets:training-data

Matching for <filters> is done based on name (e.g. dataset/modelpart name) or on path (since not all fields have an ID and names are optional). Currently, matching on paths is exact and not anything fancy.
The old flags (--model, --datasets, etc.) are still present for compatibility and marked as deprecated (for removal in a few releases). They currently are converted to basic filters to work within the new system.
Linked issues
Closes https://github.com/jozu-ai/kitops/issues/391

Aha, the automated tests coming in handy once again. Unpacking parents was using the now-ignored unpackConf.


Document additional phases needed for McStas choppers

Depending on whether the choppers from mcstas are above or below the beam, we need to add phases of 180.
We should document this in the docs.

Some instruments (DREAM for example) also have choppers at different angles than 180.


Why do some classes of .NET do not implement the interface it inherited?

Problem
As shown in the figure, SortList does not implement void Add but bool Add. Why?

I was trying to expose the interface of a SortList instance inside a class. I copied the interface inherited by SortList and all the declared method. Later I found the error message suggesting that my Add implementation did not meet the ICollection requirements.
Environment

OS: Windows10 22H2 19045.2965
.NET version: 6.0

A network error maybe.


Reference doc spelling error in description for  OperationContext.IsPrimitive

Hi there! I'm the docs author at the Azure .NET SDK docs site, and a customer submitted the following issue with documentation generated from the /// comments in your API. Please be sure to @ them in your response. Thanks!
@dbiehle commented in https://github.com/Azure/azure-docs-sdk-dotnet/issues/646:
at description of IsPrimitive(Object)
"Determines if a certain property is of premitive JSON type."

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

ID: ba9da3b1-4d17-5d3b-0fa3-b33e2f74f548
Version Independent ID: 901632ad-c1b5-4a44-797e-817514621b88
Content: OperationContext Class (Microsoft.ApplicationInsights.Extensibility.Implementation)
Content Source: xml/Microsoft.ApplicationInsights.Extensibility.Implementation/OperationContext.xml
Service: application-insights
Product: unspecified
GitHub Login: @erickson-doug
Microsoft Alias: douge

@dbiehle, I'm addressing this with the following PR into Azure Docs.

@Dmitry-Matveev @SergeyKanzhelev I'm so sorry guys, maybe I should have been clearer. I can't fix this by making a change to the XML file. Any changes I make to that XML file will be overwritten the next time the continuous integration Docs build does its thing and generates the XML files from the NuGet packages. The change has to be made in the original /// comments in the code.
Please reopen.

this is an extension method on Object defined in some external library:
See this
Definition
Namespace:
Microsoft.Azure.Documents.SystemFunctions
Assemblies:
Microsoft.Azure.DocumentDB.Core.dll, Microsoft.Azure.Documents.Client.dll

@Dmitry-Matveev did the best he can

Cool, that's what I needed to know!  Thank you! :)

BTW, when you will find their contact information - give them this reference: https://docs.microsoft.com/dotnet/standard/design-guidelines/extension-methods
Among other problems:

X AVOID defining extension methods on System.Object.
VB users will not be able to call such methods on object references using the extension method syntax. VB does not support calling such methods because, in VB, declaring a reference as Object forces all method invocations on it to be late bound (actual member called is determined at runtime), while bindings to extension methods are determined at compile-time (early bound).
Note that the guideline applies to other languages where the same binding behavior is present, or where extension methods are not supported.

Will do! Thanks again!


option for "index.js / index.ts" for components / modules path with index.ts / index.js

let say we have a structure like this :
root
  src
    components
    libraries
  main.tsx

vite-aliases would generate
"@/*": [
  "./src/*"
],
"@components/*": [
  "./src/components/*"
],
"@libraries/*": [
  "./src/libraries/*"
]

The import works fine of course, but things got problems when you're adding index.ts / index.js for each structure. for example :
root
  src
    components
      component.tsx <-- importing Component
      index.ts
    libraries
      library.ts <-- importing lib()
      index.ts
  main.tsx

We can't import things like @components and / or @libraries because tsconfig / jsconfig demand the exact file name for the component / library we want to import. for example :
import { Component } from '@components/component' <-- works
import { Component } from '@components' <-- doesn't work

Hey there!
So this Issue basically ties into the already requested feature here: https://github.com/Subwaytime/vite-aliases/pull/30.
I am currently rewriting the config generation in total and add some additional features that are missing from the configs.
For Vue Users, i am working on integrating a better support for volar and vetur.
As for other Frameworks, i am not sure if there is something similiar for react and svelte, as i have never used these frameworks.
TLDR:, This Issue will be resolved in the upcoming Version and some other Config Issues that currently exist.


Invalid HTML is handled inconsistently

In HTML, you can't have a
 inside a
. The browser turns it into something you probably didn't want:
document.body.innerHTML = '

';
alert( document.body.innerHTML ); // '

'

Ractive does even worse - it throws cryptic and inconsistent errors, or renders the markup differently to how a browser would.

I don't think there's a decently performant (size/speed) way to handle this sort of thing in ractive, so for now I'm gonna go with "don't do that" 😄


helpers: add custom fields map

This PR adds a map for custom fields that translates a simplified name
of the field to the internal jira custom field name.
/cc @bradmwilliams

/hold

/hold cancel

Changed to use const strings instead of a map


Broken link

Explore on Github button in this page links to a page that is not exists.

Should probably be https://github.com/prisma/prisma-examples/tree/latest/typescript/rest-express @nilubava?


Building with recent GHC

Hello,
I'm considering using SymEngine for a project of mine, and was playing around with Haskell wrappers. This PR updates symengine.cabal to support building with GHC 8.10.7 and recent Cabal. I've also added support for Github Actions workflow. The build itself works on both Linux and Mac, but Mac tests crash. This should be investigated further (and I leave it for another PR). For now, I've disabled all but the ascii art test.

Thanks for this work! I don't know enough about the Haskell bindings to be able to properly review. If no other maintainer comes along please comment and I'll attempt a review anyway.

@twesterhout thanks for your work! I just gave you a write access to this repository, so if you wouldn't mind maintaining the Haskell wrappers we would really appreciate it. I would say go ahead and merge once you are happy and things work. Thanks for setting up the GitHub CI. If you need anything else, please let me know.


Feedback form | DEVX-1741

PR-Codex overview
The focus of this PR is to add a FeedbackForm component and a useCreateFeedback hook for submitting feedback in the app.
Detailed summary

Added FeedbackForm component for user feedback submission
Created useCreateFeedback hook for handling feedback submission logic

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

moved: https://github.com/thirdweb-dev/js/pull/3396


Proposal: Ceph volume support

A Ceph (http://ceph.com/) volume could be implemented with something like ( see https://github.com/docker/docker/pull/8484 )
docker volumes create --driver ceph --driver-opt foo=bar --name myimage rbd:image:/path/in/docker ...

which would map rbd:image via the Ceph kernel rbd driver ( http://ceph.com/docs/master/rbd/rbd-ko/ ) with
 rbd map image

mount it somewhere
mount /dev/rbd0 /var/lib/docker/ceph/image

and then be used with
docker ... --volume-from myimage/path/in/docker ...

It requires support for https://github.com/docker/docker/issues/7249 ( for instance https://github.com/cpuguy83/docker/commit/448a1b0c31943084edb6a867a44ccdec49fcf1f0 )
The Ceph volume driver could use https://github.com/noahdesu/go-ceph or the rbd command line.
This is different from Ceph volume storage ( https://github.com/docker/docker/issues/7249 ).

Closing as this is now available via plugins. See a ceph plugin: https://github.com/contiv/volplugin
docker volume create would be handled by #14242
Thanks!

It seems that https://github.com/AcalephStorage/docker-volume-ceph-rbd> and https://github.com/yp-engineering/rbd-docker-plugin are another options as rbd plugins :smiley: