You can't use sync call and async streaming in the same application

If you use the async streaming text feature together with a sync call in the same application this leads to an exception regarding the event loop.
Python 3.12.8
pydantic-ai-slim[vertexai, openai]==0.0.15
Steps to reproduce:
import asyncio

from pydantic_ai import Agent
from pydantic_ai.models.vertexai import VertexAIModel

model = VertexAIModel(
    model_name="gemini-1.5-flash",
    service_account_file=xxx,
    project_id=xxx,
    region=xxx,
)

agent = Agent(model=model)

response = agent.run_sync(user_prompt="Hi")

async def run_agent(user_prompt):
    async with agent.run_stream(user_prompt=user_prompt) as result:
       async for message in result.stream_text(delta=True):
           print(message)

response = asyncio.run(run_agent(user_prompt="Hi"))

Exception:
Traceback (most recent call last):
  File "/Users/xxx/xxx/xxx/src/tet2.py", line 27, in <module>
    response = asyncio.run(run_agent(user_prompt="Hi"))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/.local/share/uv/python/cpython-3.12.8-macos-aarch64-none/lib/python3.12/asyncio/runners.py", line 194, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/Users/xxx/.local/share/uv/python/cpython-3.12.8-macos-aarch64-none/lib/python3.12/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/.local/share/uv/python/cpython-3.12.8-macos-aarch64-none/lib/python3.12/asyncio/base_events.py", line 686, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/src/tet2.py", line 23, in run_agent
    async with agent.run_stream(user_prompt=user_prompt) as result:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/.local/share/uv/python/cpython-3.12.8-macos-aarch64-none/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/pydantic_ai/agent.py", line 408, in run_stream
    async with agent_model.request_stream(messages, model_settings) as model_response:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/.local/share/uv/python/cpython-3.12.8-macos-aarch64-none/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/pydantic_ai/models/gemini.py", line 183, in request_stream
    async with self._make_request(messages, True, model_settings) as http_response:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/.local/share/uv/python/cpython-3.12.8-macos-aarch64-none/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/pydantic_ai/models/gemini.py", line 221, in _make_request
    async with self.http_client.stream(
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/.local/share/uv/python/cpython-3.12.8-macos-aarch64-none/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1583, in stream
    response = await self.send(
               ^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
    response = await self._send_handling_auth(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
    response = await self._send_handling_redirects(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
    response = await self._send_single_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
    response = await transport.handle_async_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 394, in handle_async_request
    resp = await self._pool.handle_async_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request
    raise exc from None
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request
    response = await connection.handle_async_request(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 103, in handle_async_request
    return await self._connection.handle_async_request(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/httpcore/_async/http11.py", line 136, in handle_async_request
    raise exc
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/httpcore/_async/http11.py", line 106, in handle_async_request
    ) = await self._receive_response_headers(**kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/httpcore/_async/http11.py", line 177, in _receive_response_headers
    event = await self._receive_event(timeout=timeout)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/httpcore/_async/http11.py", line 217, in _receive_event
    data = await self._network_stream.read(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 35, in read
    return await self._stream.receive(max_bytes=max_bytes)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/anyio/streams/tls.py", line 204, in receive
    data = await self._call_sslobject_method(self._ssl_object.read, max_bytes)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/anyio/streams/tls.py", line 147, in _call_sslobject_method
    data = await self.transport_stream.receive()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 1289, in receive
    await self._protocol.read_event.wait()
  File "/Users/xxx/.local/share/uv/python/cpython-3.12.8-macos-aarch64-none/lib/python3.12/asyncio/locks.py", line 209, in wait
    fut = self._get_loop().create_future()
          ^^^^^^^^^^^^^^^^
  File "/Users/xxx/.local/share/uv/python/cpython-3.12.8-macos-aarch64-none/lib/python3.12/asyncio/mixins.py", line 20, in _get_loop
    raise RuntimeError(f'{self!r} is bound to a different event loop')
RuntimeError: <asyncio.locks.Event object at 0x107e104a0 [unset]> is bound to a different event loop

I was not able to reproduce this issue in Python 3.12.1. It generally should not be a problem unless run_sync is called from within an already-running async function. Internally, run_sync uses something like:
return asyncio.get_event_loop().run_until_complete(
    self.run(
        user_prompt,
        message_history=message_history,
        model=model,
        deps=deps,
        model_settings=model_settings,
        usage_limits=usage_limits,
        infer_name=False,
    )
)

This creates (and then closes) an event loop for the duration of the sync call. Once that loop closes, running additional async code later is typically fine, so long as you’re not invoking run_sync inside existing async code. You can insert the following snippet between calls to verify whether an event loop is running. Ideally, you should see "No running loop found":
try:
    loop = asyncio.get_running_loop()
    print("  Found a running loop:", loop)
except RuntimeError:
    print("  No running loop found")

Thanks for your answer and trying to reproduce my issue.
I have tested this issue in Python 3.12.1 as well and recognized the same behavior.
Maybe it's a Mac M1 ARM problem.
I used your code snippet to show if an event loop is running between my two calls but it says: "No running loop found".
But if i insert the code snippet before this line (Pydantic AI code, gemini.py, line 221):
File "/Users/xxx/xxx/xxx/.venv/lib/python3.12/site-packages/pydantic_ai/models/gemini.py", line 221, in _make_request
    async with self.http_client.stream(
               ^^^^^^^^^^^^^^^^^^^^^^^^

it definitely says there is an event loop running: "Found a running loop: <_UnixSelectorEventLoop running=True closed=False debug=False>" and the error seems to happen after this call (see stacktrace).

Maybe it's important to say that I'm using the standalone Python versions of uv or the ones installed by pyenv. I have tested both.

I am using Jupyter notebook and I got this error
I was able to resolve it by adding this additional package and code.
import nest_asyncio
nest_asyncio.apply()

Here is the explanation of this by Github copilot
The RuntimeError: This event loop is already running occurs because asyncio.run() cannot be called when an event loop is already running, which is common in environments like Jupyter notebooks.

To fix this, you can use nest_asyncio to allow nested use of asyncio.run() or use await directly if you're in an async function.

Final code that worked.
import asyncio
import nest_asyncio # Import package

from pydantic_ai import Agent
from pydantic_ai.models.vertexai import VertexAIModel

nest_asyncio.apply() # Apply nest_asyncio to allow nested event loops

model = VertexAIModel(
    model_name="gemini-1.5-flash",
    service_account_file=xxx,
    project_id=xxx,
    region=xxx,
)

agent = Agent(model=model)

response = agent.run_sync(user_prompt="Hi")

async def run_agent(user_prompt):
    async with agent.run_stream(user_prompt=user_prompt) as result:
       async for message in result.stream_text(delta=True):
           print(message)

response = asyncio.run(run_agent(user_prompt="Hi"))

I am using Jupyter notebook and I got this error
I was able to resolve it by adding this additional package and code.
import nest_asyncio
nest_asyncio.apply()

Here is the ref from pydantic ai

Here is the explanation of this by Github copilot
The RuntimeError: This event loop is already running occurs because asyncio.run() cannot be called when an event loop is already running, which is common in environments like Jupyter notebooks.

To fix this, you can use nest_asyncio to allow nested use of asyncio.run() or use await directly if you're in an async function.

Final code that worked.
import asyncio
import nest_asyncio # Import package

from pydantic_ai import Agent
from pydantic_ai.models.vertexai import VertexAIModel

nest_asyncio.apply() # Apply nest_asyncio to allow nested event loops

model = VertexAIModel(
    model_name="gemini-1.5-flash",
    service_account_file=xxx,
    project_id=xxx,
    region=xxx,
)

agent = Agent(model=model)

response = agent.run_sync(user_prompt="Hi")

async def run_agent(user_prompt):
    async with agent.run_stream(user_prompt=user_prompt) as result:
       async for message in result.stream_text(delta=True):
           print(message)

response = asyncio.run(run_agent(user_prompt="Hi"))

That is a great workaround for Jupyter Notebooks which i'm using myself.
But i'm pretty unsure if Pydantic AI is working as expected in the area of event loops, sync and asynchronous calls?


Strip debuginfo for Rust runtime to reduce binary size

Strip debuginfo for Rust runtime to reduce binary size. For the Rust AL2 runtime it reduced the binary size by about 18.18% (1.1 MB -> 929 KB). See relevant article: https://kobzol.github.io/rust/cargo/2024/01/23/making-rust-binaries-smaller-by-default.html

👋 Thanks @chrisbll971!
Are you able to see the difference before/after?
I've just run the test with and without the PR and it seems that it does not affect the size? Maybe this flag is on by default on the release build?

I think it is enabled by default in the nightly Rust build now, but not yet for the non-nightly version. Is your build using nightly? On my machine it reduced the AL2 build when running the release build by 18%.

@chrisbll971 it's live! Thanks for your contribution!


fix: Pass kwargs to renderEntry on json Renderer

This PR fix the Bug that the kwargs are not passed to the render renderEntry.
So  this not work.
https://github.com/viur-framework/viur-core/blob/20f16774f2cb356c5035d3ff6af0282f861498c8/src/viur/core/modules/user.py#L734-L740

Okay I close this PR and make a new one.


[SEO][Rollout Monikered Canonical]Add URL moniker

Docs Build status updates of commit 7180c0a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

aspnet-core/docfx.json
:white_check_mark:Succeeded

aspnet-mvc/docfx.json
:white_check_mark:Succeeded

aspnet-webpages/docfx.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


clicking on a link in the API docs doesn't work properly

See the url of the page.

@vieux Hmm, I can't repro this in my browser.

Appears to only do this on sub-items. Ex, List services is a sub-item of Services.
Services link is https://docs.docker.com/engine/api/v1.26/#tag/Service
List services link is https://docs.docker.com/engine/api/v1.26/#tag/Service
Clicking on a link to https://docs.docker.com/engine/api/v1.26/# displays the behavior as seen above.
Perhaps sub-items need to be tagged in Swagger?

I took at look at this and it appears to already be resolved

Thanks @gschaetz


[FEATURE REQ] Move KeyVault secret Models to new Azure.Security.KeyVault.Secrets package

The deprecated package contains model classes like SecretItem.
There doesn't seem to be equivalent models in the new replacement packages:
Azure.Security.KeyVault.Secrets
Azure.Security.KeyVault.Keys
Azure.Security.KeyVault.Certificates
Additionally, these models use Json.Net so could these also be transitioned to System.Text.Json?
I'm specifically trying to serialize these models from a Server side perspective so I would like to have the models correctly serialize to match the Response structure as defined here: https://docs.microsoft.com/en-us/rest/api/keyvault/get-secrets/get-secrets#examples

Thank you for your feedback.  Tagging and routing to the team member best able to assist.

SecretItem and SecretBundle were renamed to KeyVaultSecret. Please see our migration guides (e.g. https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/keyvault/Azure.Security.KeyVault.Secrets/MigrationGuide.md - all next to the packages' README.md files).
We didn't support serialization to/from the old models directly before. If you're using the SDKs, is there some reason you're trying to de/serialize the models yourself? The SDKs take care of that directly, as did the previous ones.

I think I understand the confusion now. When I say server side perspective I'm trying to describe a KeyVault emulator. I'm trying to create something similar to the Azure Storage Emulator for Azure KeyVault. This means I'm focusing on producing the same HTTP responses that the KeyVault servers in Azure would produce. This is to build a like for like emulator that the Client SDK can connect to for disconnected development scenarios where access to Azure is not possible.
So, in the asp.net controllers I build up SecretItems etc and then pass them through the serialization process which produces the same HTTP responses that the KeyVault server would produce. The new Client SDK does not seem to offer a set of models that reproduce this same behaviour. Does that help at all?

Thanks @heaths


Ninja Dash Attack

About the PR

Adds a ninja dash attack(30 armor piercing slash)
Media

https://github.com/space-wizards/space-station-14/assets/83733158/5162e705-c3e3-4d2e-9464-a97db014652e

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

:cl:

add: Ninja Dash now deals damage

wha... I have no idea what I am doing


Gradle 4.0 task configuration closures types are over-restrictive, cause compilation errors with @CompileStatic

Up to gradle 3.5, one could write a code such as:
project.task('myCopyTask', type:Copy) { Copy it ->
  from file('in.txt')
  into file('out.txt')
}

Since Gradle 4.0 if using Groovy's @CompileStatic this fails at compile time with:

Expected parameter of type org.gradle.api.Task but got org.gradle.api.tasks.Copy.
[Static type checking] - Cannot find matching method org.gradle.api.Task#from(java.io.File). Please check if the declared type is right and if the method exists
[Static type checking] - Cannot find matching method org.gradle.api.Task#into(java.io.File). Please check if the declared type is right and if the method exists

I double checked the release notes and I found no reference to this being an intended API change (nor have I seen proper warnings).
Expected Behavior
I expect the old code to still work, and the argument passed to the configuration closure to be the type of the task being configured.
Current behavior
Compile errors for methods not found / wrong parameter types.
Steps to Reproduce (for bugs)
Run gradle myCopyTask
@groovy.transform.CompileStatic
def setup(Project project) {
  project.task('myCopyTask', type:Copy) { Copy it ->
    from file('in.txt')
    into file('out.txt')
  }
}

setup(project)

Workaround
Disable @CompileStatic or rewrite as:
@groovy.transform.CompileStatic
def setup(Project project) {
  project.task('myCopyTask', type:Copy) {
    def copyTask = it as Copy
    copyTask.from file('in.txt')
    copyTask.into file('out.txt')
  }
}

setup(project)

Context
Some plugins can't be compiled against Gradle 4.0. Plugins' code need to be updated to target 4.0 and manually cast the argument to a local var.

So, the problem stems from the fact Gradle 4.0 added a @DelegatesTo(Task.class, strategy = Closure.DELEGATE_FIRST) @ClosureParams(ReturnType.class) annotation to these methods (done on this commit).
The thing is, those checks are actually over-restrictive. You are not actually passing Task to the closure but a <T extends Task>, which is given by the type passed or defaults to DefaultTask. The change now forces us to either drop all static compilation on our end, or take it as a Task, and manually cast it to the proper type within the Closure.

Your analysis is correct, @jsotuyod . Another workaround is to write it this way:
@groovy.transform.CompileStatic
def setup(Project project) {
  project.tasks.create('myCopyTask', Copy) {
    it.from file('in.txt')
    it.into file('out.txt')
  }
}

@melix are you confirming this is a bug and unintentionally breaking valid code? Otherwise I see no reason to assume project.tasks.create won't be annotated the same way on a future gradle release...
I'd really rather wait for a fixed gradle release than update all my plugins.

Yes, I confirm it should be fixed. Either by reverting, or by implementing proper compiler hints. I'm just not sure what solution is best today.

@melix What's the status on this? Did you decide to revert the change?

Any news on this? 4.1 is out and still no feedback, I'd really appreciate being able to build my plugins against the latest gradle version without having to rework my code.

I'm scheduling this for 4.2. The simplest thing would be to revert, but I'll let @melix decide.

+1 for reverting, I thought we had done it already.

@melix could you tackle that this week?

yes, I will

Pull request: https://github.com/gradle/gradle/pull/2718


Initial implementation of support for lattice artifacts in wash-lib (no CLI)

This adds a lattice_artifacts module to wash lib, allowing CLI tools like wash to be able to read/write artifacts to the lattice artifact cache. See this PR for the corresponding wasmCloud host implementation.
⚠ The wash binary will not compile here because wash lib uses a version of async nats that is significantly newer than what wash currently has, so there will be a dependency tree failure during compilation. Leaving this PR as a draft until the wash main binary can be upgraded to use a version of async nats greater than 0.21.0 because we're also awaiting a fix from NATS in the Rust client.
Recap:

Once fix is available, upgrade wash-lib to newest async nats
Once fix is available downstream from wasmbus-rpc, upgrade wash binary to use that
Build will compile, can un-draft this PR

After some hands on time with this experiment we've decided not to implement this


InputAdornment focused state

There seem to be no way for an InputAdornment to know if it's inside a focused Input or FormControl.

[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior

I followed the pattern in FormLabel to try to get muiFormControl from the context and then assigning a class when muiFormControl.focused is true.
Current Behavior

context.muiFormControl is undefined
Steps to Reproduce (for bugs)

See example at: https://codesandbox.io/s/k2vl243823
Context

I am trying to implement an adornment that's only visible when the Input is focused.
Your Environment

Tech
Version

Material-UI
1.0.0-beta.43

React
16.2.0

browser
all

etc

@ErikDakoda context.muiFormControl is an implementation detail. Don't use it. I would say, that the best approach is the following:
          <Input
            onFocus={() => {
              this.setState({
                focused: true
              });
            }}
            onBlur={() => {
              this.setState({
                focused: false
              });
            }}
            endAdornment={<EndAdornment focused={this.state.focused} />}
          />

https://codesandbox.io/s/vv758ylxn0


Better file-level controls in beaker:archive

Dat file viewer, needs to be able to:

[ ] Rename files
[ ] Delete files
[ ] Move files
[ ] Create folders
[ ] Rename folders
[ ] Delete folders

If an archive was created by an app, that'd be nice to see in the main archive list.
(may belong in another issue)

Yeah, created a new issue: https://github.com/beakerbrowser/beaker/issues/176


Cannot deduce type error

I'm getting a new error with the same code I've been trying, now it's saying Enzyme cannot deduce type. I'll work on building a MWE, but in the meantime thought I'd post it here. This is on Julia 1.10 and Enzyme 0.11.7
advection_coriolis_withPV.txt

A very not reduce script that produces the above error is attached. 99% of the code is setup, the function Enzyme is actually dealing with is time_integration_debug, and in particular the lines
        # PV!(Diag,S)
            @unpack q,dvdx,dudy,h_q = Diag.Vorticity
            @unpack f_q,ep = S.grid

            m,n = size(q)
            @boundscheck (m,n) == size(f_q) || throw(BoundsError())
            @boundscheck (m+2,n+2) == size(dvdx) || throw(BoundsError())
            @boundscheck (m+2+ep,n+2) == size(dudy) || throw(BoundsError())
            @boundscheck (m,n) == size(h_q) || throw(BoundsError())

            @inbounds for j ∈ 1:n
                for i ∈ 1:m
                    q[i,j] = (f_q[i,j] + dvdx[i+1,j+1] - dudy[i+1+ep,j+1]) / h_q[i,j]
                end
            end

The uncommented lines are just the definition of PV!, and the code runs setup like this (by inlining the function PV!). But if I instead call the function PV! rather than inlining it I hit the above error. Important to note that this error only happens with Julia 1.10, if I go back to Julia 1.8.5 and do the same thing I instead get the JIT error mentioned here https://github.com/EnzymeAD/Enzyme.jl/issues/1021
advection_coriolis_only.jl.zip

@wsmoses  I think this one can be closed, it was fixed with the maxtypeoffset! change


New package: SQLREPL v0.1.0

Registering package: SQLREPL
Repository: https://github.com/c42f/SQLREPL.jl
Created by: @c42f
Version: v0.1.0
Commit: cfc4009cfbff19e76e0f75aca37a26db3932a4ea
Reviewed by: @c42f
Reference: https://github.com/c42f/SQLREPL.jl/commit/cfc4009cfbff19e76e0f75aca37a26db3932a4ea#commitcomment-67110847
Description: A Julia REPL mode for SQL

[noblock]
Hmm I somehow have a bad relationship with AutoMerge and naming :-/
But both SQL and REPL are very standard acronyms so I'm not sure we can do better for the name on this one.


Support .cmt files too

While migrating https://github.com/ostera/reactor to bsdoc I realized that I was using the script there to build docs for the example modules but relying on the .cmt instead of the .cmti files.
I'd like this to be configurable, or use both by default (prefer .cmti over .cmt for same file name).
I'll let this rest for a bit and see if the problem arises again in other places.

I just ran into this in https://reasonml.chat/t/seeking-guidance-on-odoc-bsdoc-module-linking-on-bucklescript-project/2389 . I know you are not prioritizing bsdoc right now, I will try to look into fixing it. (As we know e.g. https://github.com/b0-system/odig/issues/2 , it is important to support .cmt in case the interface .cmti is missing.)

Hmm, I'm confused, because it seems that https://github.com/reuniverse/bsdoc/commit/2840121528d5b41752ef88b8aff0caacf78528e6 should have fixed this. Will try to make and run locally to see what's going on.

I think I understand what's going on now. In https://github.com/reuniverse/bsdoc/blob/0ab00a4116e12bb83d571de24d1e166dd164c3fc/src/odoc.re#L8 , every .cmt/.cmti file is compiled to odoc with the same single include directory (effectively, -I lib/bs/src). But, in projects organized in a nested directory structure, the nested directories need to be included too. Otherwise the .odoc files in those nested directories are not linked in to the final output, and their modules are not hyperlinked either.
So in short, this issue is resolved by the above commit, but I am seeing effectively a new issue, which is that .odoc files in nested directories are not linked.

Fixed as of 6.0.4-alpha


leading comment not considered part of function body

I would expect the comment to be part of the body in both these cases.

If this is intended, is there a good strategy to consider a leading comment as part of the body? If no body, check the node following the function_definition is a comment, and if there is a body check if previous siblings are comments?

The same bug applies to the body blocks of with statements unfortunately. Consider:
with managed_resource(timeout=3600) as resource:
     # Resource is released at the end of this block,
     # even if code in the block raises an exception
     a = 42
     # hello
     b = 19

The first two comment lines will be put between the with_clause and body: block, while the third comment is part of the body.

I don't know if it's a "bug", but it is related to how tree-sitter handles extras.

Is it parsing the comment as func_type_comment? func_type_comment comes before the block.
function_def_raw:
    | 'def' NAME [type_params] '(' [params] ')' ['->' expression ] ':' [func_type_comment] block
    | 'async' 'def' NAME [type_params] '(' [params] ')' ['->' expression ] ':' [func_type_comment] block

This is messing with a project I'm working on.


Record cycle counter when payload began executing

It would be very useful to have a feature that records a cycle count value when a payload begins executing.  An internal cycle count register should increment continuously and be snapshotted into an accessible register whenever a payload begins executing.  The script can then use that value to make comparisons between multiple payload executions.

Hi,
Sure thing, I'll have a look at it.


feat: enable ssz generic spec tests

Motivation
Closes #626

The error is because hash_tree_root()! is not implemented for bitlist and bitvector and that's what I am supposed to work on so I would just make updates to this PR.


String formatting of the getterType and mutationType arguments to createHelpers

I tried to do stuff like:
const {mapFields} = createHelpers({getterType: `${nsName}/getField`, mutationType: `${nsName}/updateField`});

But it didn't work. I pass "nsName" as props. I want to create reusable components.
Do you think there's a way to achieve this kind of behavior?
Thanks in advance!

Hey @savandriy!
I'm not quite sure if I understand correctly what you want to achieve?
// This should work!
const nsName = 'someString';
const {mapFields} = createHelpers({getterType: `${nsName}/getField`, mutationType: `${nsName}/updateField`});

I want to receive "nsName" in props.
<script>
  import {createHelpers} from 'vuex-map-fields';

 const {mapFields} = createHelpers({getterType: `${nsName}/getField`, mutationType: `${nsName}/updateField`'});

  export default {
    name: 'DataTableComponent',
    props: ["nsName"],
    computed: {
      ...mapFields([
        'searchResults',
      ])
    }
  }
</script>

Maybe there's a way to create the helpers on a lifecycle hook or something?

This is not possible. You can't access the props of a Vue.js component from outside the component.
<script>
  import {createHelpers} from 'vuex-map-fields';

 // This is outside of the Vue.js component object, you don't have access to any props or data of the component. `nsName` is `undefined` here.
 const {mapFields} = createHelpers({getterType: `${nsName}/getField`, mutationType: `${nsName}/updateField`'});

  export default {
    // Inside this block you have access to the props via `this.propName` (e.g. `this.nsName`).
    name: 'DataTableComponent',
    props: ["nsName"],
    computed: {
      ...mapFields([
        'searchResults',
      ])
    }
  }
</script>

Ah, now I see.
In that case, can I call
createHelpers({getterType: `${nsName}/getField`, mutationType: `${nsName}/updateField`'})
inside the export default block?
maybe right inside the computed?

Theoretically you can do that, but practically you can't use the helpers created that way. There is now way (I'm aware of) how you can pass helpers created inside the component / at the time the component is created, to the computed properties of the same component. Sorry.

Anyway, thanks!

I'm closing this because there is nothing more to do. Thank you for contributing.


quartus: init at <IP_ADDRESS>0

Motivation for this change
Add Quartus Prime software for programming Intel FPGAs. There are unfortunately no open-source alternatives.
Things done

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

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

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

Notify maintainers
This is a new package - should i add myself as a maintainer, even though I don't have commit access to nixpkgs?

This also adds a utility that silently eats chmod syscalls that set SUID/SGID bits. The installer insists on setting this on directories, which nix then causes to fail.
Nix could in theory allow this, I think the action is safe on directories but I'm not sure it is possible to intercept the syscall, check arguments and then proceed in a way that does not produce a race condition (where a directory is replaced with a file after the check but before the operation takes place).

This is a new package - should i add myself as a maintainer, even though I don't have commit access to nixpkgs?

Yes, it's very common to maintain while not having commit access. Please add yourself as a maintainer to the maintainers file and put that addition in a separate commit.
Other then that and my 1 comment, LGTM. Just out of curiosity, is this your 1st contribution to Nixpkgs? It seems you have used advanced mechanisms to package this, similar to WolframAlpha's package.. Well done!

Thanks for the review! This isn't my first contribution to nixpkgs, but it's definitely my trickiest so far, open-source is generally much easier.
I've added myself to the maintainers.

Is it possible to have more than one executable in a FHS user environment? The quartus program really comes with several binaries that should be runnable from the command line.

Good question. I'm a fan myself of the command line tools that come with Quartus and I used them back when I was on Arch and I developed stuff for FPGA.
It's a good question to ask on the forum. The main issue is that there's the runScript argument which should be mandatory for this.
1 workaround I have in mind while thinking about it, is this:
Create a wrapper script that will replace the current runScript. Make this wrapper check it's $0 and accordingly launch the right executable in the FHS env. Afterwards, create a wrapper package  that will create symlinks to that FHS' wrapper script and use different names in $out/bin/. This way, the symlinks will emulate a different $0 and thus operate a different executables in the FHS environment.
I hope you can imagine what I'm describing. From AFAIK this is a common practice for example with rustup - there's only 1 executable and it checks it's $0 in order to operate as rustc or cargo or whatever. The same is done also with bash and sh - if it's $0 is sh it'll operate in a sh compatible mode.

OK, I'll try and put something together. I'd like it to work with .desktop files so I can use it nicely from a menu.
Secondly, if you have much experience with Quartus - the "Platform Designer" tool does not work at least when launched from the main UI. Unfortunately, there are no GUI or console error logs, I just get the Platform Designer splash screen and then nothing. Do you know either which binary this is, so I can try running it directly, or if there are any more detailed logs kept anywhere?
I wouldn't consider this a blocker but it would be nice to fix.

I'm glad you worked this out @kwohlfahrt! as for the other command line interface executables, could you perhaps just verify, as a start, that the command line tools listed here are runnable from inside the FHS env? You can test it by temporarily replacing the runScript with bash and then see if you can launch them from that shell..
If they all work fine, I think we can work out together a way to make all of these executables available in the user's $PATH with a wrapper package and a wrapper script, as I tried to explain in my previous comment.

quartus/bin/jtagconfig works, quartus/bin/quartus obviously does, quartus/sopc_builder/bin/qsys-edit is OK. Any others I should check?
modelsim_ase/bin/vsim exits with Read failure in vlm process. I assume I also have to set-up some licensing things to run this directly, since it works when launched from the main UI.

Good job @kwohlfahrt. There are many more executables it would be nice to check (e.g quartus_asm, quartus_cdb...) - please see the list in this PDF's TOC.
As for the modelsim error, see this suggested solution:
https://bbs.archlinux.org/viewtopic.php?pid=1708875#p1708875

Is this ready for review?

@Mic92 I have been using this package via the main GUI for a few months, it seems to be working OK. However, I have not tested many of the individual executables suggested above. Hoping to do so soon now I'm back from the holiday, so I don't mind deferring this until I have, but I also wouldn't object to merging this now and fixing any issues found later.

@kwohlfahrt From my experience with the PRs culture in Nixpkgs, I think it'll be worth marking this as WIP untill it'll be fully ready.

The following work: ../sopc_builder/bin/qsys-generate, ./quartus_map, quartus_fit, quartus_asm, quartus_sta, quartus_eda. Some others give me errors that they are not available with my license, or that I am missing command-line arguments but they do run.
vsim still does not work - however Ubuntu 18.04 is supported which has freetype-2.8.1, so it is not exactly the same issue. I will try and dig into what exactly the missing factor is here.

I don't have an Intel account to download/test this but would merge this pull request if somebody else was able to launch the GUI i.e. @doronbehar

I thought up until now I'll need a paid license in order to test this but it seems it's supposed to be possible to download the what's called "standard" edition of the QuartusLiteSetup-${version}-linux.run files and that's what the derivation is targeted at - the only requirement is to sign up for a free account. Here are my findings:
I downloaded these .run files and added them with nix-store --add (see my review about this) and I think because my sha256sum were different I still got the message that I need to put the ModelSim .run file in my /nix/store/. The shas seem to be different for the QuartusLiteSetup .run file as well:
$ ls -l /nix/store/4yihv30am9640ixijz0ip7x4msnlwshx-QuartusSetup-<IP_ADDRESS>0-linux.run /nix/store/gy4maz398wv3d8hrf3j95zrcddrrmlig-QuartusLiteSetup-<IP_ADDRESS>0-linux.run.drv
-r--r--r-- 1 root root<PHONE_NUMBER> Jan  1  1970 /nix/store/4yihv30am9640ixijz0ip7x4msnlwshx-QuartusSetup-<IP_ADDRESS>0-linux.run
-r--r--r-- 1 root root       1486 Jan  1  1970 /nix/store/gy4maz398wv3d8hrf3j95zrcddrrmlig-QuartusLiteSetup-<IP_ADDRESS>0-linux.run.drv
$ ls -l /nix/store/y75qnagk59qfhpc5sla83iv7g4jnxdb9-ModelSimSetup-<IP_ADDRESS>0-linux.run /nix/store/hj9gvpmzjszrcq5yndq6jjs8n7jrcdkl-ModelSimSetup-<IP_ADDRESS>0-linux.run.drv /nix/store/0bi68pph1sn7c1dgfg4d4dyvfglds1lv-ModelSimSetup-<IP_ADDRESS>0-linux.run.lock
-rw------- 1 root root          0 Jan 10 17:47 /nix/store/0bi68pph1sn7c1dgfg4d4dyvfglds1lv-ModelSimSetup-<IP_ADDRESS>0-linux.run.lock
-r--r--r-- 1 root root       1477 Jan  1  1970 /nix/store/hj9gvpmzjszrcq5yndq6jjs8n7jrcdkl-ModelSimSetup-<IP_ADDRESS>0-linux.run.drv
-r--r--r-- 1 root root<PHONE_NUMBER> Jan  1  1970 /nix/store/y75qnagk59qfhpc5sla83iv7g4jnxdb9-ModelSimSetup-<IP_ADDRESS>0-linux.run

@kwohlfahrt can you confirm the different checksums?

Sorry, missed the previous comment. I get the following checksums for the ModelSimSetup file. The md5sum matches that published on the download website:
> md5sum ModelSimSetup-<IP_ADDRESS>0-linux.run
142526799b9f80e1fe1d11743724a668  ModelSimSetup-<IP_ADDRESS>0-linux.run
> sha256sum ModelSimSetup-<IP_ADDRESS>0-linux.run
d9f841c12a0d7360222068610dca23bff6ac90e9f48aaa2c429b321952763b48  ModelSimSetup-<IP_ADDRESS>0-linux.run

nix-prefetch-url produces the checksum added in the PR. nix-store --add however comes up with a different store path, I'm not sure what's up with that.
> nix-prefetch-url file://(pwd)/ModelSimSetup-<IP_ADDRESS>0-linux.run
warning: dumping very large path (> 256 MiB); this may run out of memory
[998.7 MiB DL]
path is '/nix/store/0bi68pph1sn7c1dgfg4d4dyvfglds1lv-ModelSimSetup-<IP_ADDRESS>0-linux.run'
0j1vfr91jclv88nam2plx68arxmz4g50sqb840i60wqd5b0l3y6r
> nix-store --add ./ModelSimSetup-<IP_ADDRESS>0-linux.run
warning: dumping very large path (> 256 MiB); this may run out of memory
/nix/store/b6cc9qpmiq8h441984p555601s3w4p2v-ModelSimSetup-<IP_ADDRESS>0-linux.run

I notice the hash part of the path from nix-prefetch-url matches the .lock file from @doronbehar above.
Additionally, vsim works if I apply the following overlay: self: super: { libpng = super.libpng12; }. Is there a way to apply this to the multiPkgs of buildFHSUserEnv?

Given the above requirement regarding libpng, I'm tempted to split ModelSim into its own package. @doronbehar, do you have any idea whether this should present difficulties? As far as I know Quartus just calls the ModelSim executables so as long as we preserve those it should be OK...
Rebased onto the wrong branch, sorry for stressing out poor ofborg.

I'm tempted to split ModelSim into its own package.

It's an interesting idea but I think it doesn't worth the effort and the risk of whatever issues users may encounter in the far future..

Additionally, vsim works if I apply the following overlay: self: super: { libpng = super.libpng12; }. Is there a way to apply this to the multiPkgs of buildFHSUserEnv?

Why not package the whole derivation with libpng12 instead of libpng?

nix-prefetch-url produces the checksum added in the PR. nix-store --add however comes up with a different store path, I'm not sure what's up with that.

That's definitely peculiar and it's great you've summoned more reviewers who may be able to shed some light on this. Never the less, as long as we may end up stuck with this inconsistency, I think it's less intuitive to go along with nix-prefetch-url as the files are usually downloaded with the browser.. I wouldn't mind much if we'll go along with either of these options but perhaps at least specify a little bit better how to use either command. For example, I had no clue that nix-prefetch-url could be used with a file:// schema. You see where I'm getting at @kwohlfahrt ?

In that case the error message should explicitly list on how to add those file to the nix store.

@doronbehar can you re-check?

I got rid of the custom message. Note that nix-store --add produces a different store path compared to nix-store --add-fixed sha256 and nix-prefetch-url. Could you try again using one of the latter two methods @doronbehar?
Regarding vsim/libpng12: Adding libpng12 to multipkgs is insufficient, I still get the error below.
Initialization problem, exiting.

    while executing
"InitializeINIFile quietly"
    invoked from within
"ncFyP12 -+"
    (file "/mtitcl/vsim/vsim" line 1)
** Fatal: Read failure in vlm process (0,0)

I assume this occurs if libpng is linked anywhere instead of libpng12 - I'm not sure how these versions are resolved at runtime. So far, the only fix I've found is the overlay approach, so all libraries that depend on libpng are rebuilt with libpng12. For example, freetype depends on libpng, so that must be overridden. But then fontconfig depends on freetype, so I need to override fontconfig's freetype dependency with the one we just built. I imagine there are a fair few libpng dependencies buried somewhere in the X11 requirements as well, so I don't think it is practical to do this one package at a time.
This is also my reasoning for splitting out the ModelSim package - these overridden won't be available from the Nix cache, and I would prefer to use the up-to-date libraries where they don't cause issues.
PS - I didn't summon the extra reviewers, that happened automatically.

I think I got vsim working! The overrides are a bit ugly the way they are now though, can this be applied to all of pkgs cleanly somehow?

@kwohlfahrt Well done for finding out about nix-store --add-fixed and changing the message. I've readded the files with:
~/downloads $ nix-store --add-fixed sha256 ./QuartusSetup-<IP_ADDRESS>0-linux.run ./ModelSimSetup-<IP_ADDRESS>0-linux.run

When building the derivation, I got no error as for the ModelSim setup .run file but only for Quartus. It's seems as if it's because the file names are different - mine is ./QuartusSetup-<IP_ADDRESS>0-linux.run and the expected filename is QuartusLiteSetup-<IP_ADDRESS>0-linux.run. After renaming the file and running nix-store --add-fixed again, I tried building but the message came up again. Could you recheck please with Quartus' download on your end what is the filename that's used when you download the file?
Here are the files I have in my /nix/store right now:
$ ls -l /nix/store/*Quartus*
-r--r--r-- 1 root root<PHONE_NUMBER> Jan  1  1970 /nix/store/4yihv30am9640ixijz0ip7x4msnlwshx-QuartusSetup-<IP_ADDRESS>0-linux.run
-rw------- 1 root root          0 Jan 13 19:06 /nix/store/9m7nc46lcrjhr74lag3h2j8wlxbibk6g-QuartusLiteSetup-<IP_ADDRESS>0-linux.run.lock
-r--r--r-- 1 root root       1486 Jan  1  1970 /nix/store/gy4maz398wv3d8hrf3j95zrcddrrmlig-QuartusLiteSetup-<IP_ADDRESS>0-linux.run.drv
-r--r--r-- 1 root root<PHONE_NUMBER> Jan  1  1970 /nix/store/pnn5bvcz7q6cp5zqf77b66csw0h4qn48-QuartusSetup-<IP_ADDRESS>0-linux.run
-r--r--r-- 1 root root<PHONE_NUMBER> Jan  1  1970 /nix/store/svq7aag9lc5mmbp0rr00qfqwk38hmf3k-QuartusLiteSetup-<IP_ADDRESS>0-linux.run
-r--r--r-- 1 root root       1486 Jan  1  1970 /nix/store/waznhb972qp8nfj2h70zqg61b7z9ps8a-QuartusLiteSetup-<IP_ADDRESS>0-linux.run.drv
$ ls -l /nix/store/*ModelSim*
-r--r--r-- 1 root root<PHONE_NUMBER> Jan  1  1970 /nix/store/0bi68pph1sn7c1dgfg4d4dyvfglds1lv-ModelSimSetup-<IP_ADDRESS>0-linux.run
-r--r--r-- 1 root root       1477 Jan  1  1970 /nix/store/ga6v7kmprbscabh98zwdkl6mvilh8qjw-ModelSimSetup-<IP_ADDRESS>0-linux.run.drv
-r--r--r-- 1 root root       1477 Jan  1  1970 /nix/store/hj9gvpmzjszrcq5yndq6jjs8n7jrcdkl-ModelSimSetup-<IP_ADDRESS>0-linux.run.drv
-r--r--r-- 1 root root<PHONE_NUMBER> Jan  1  1970 /nix/store/y75qnagk59qfhpc5sla83iv7g4jnxdb9-ModelSimSetup-<IP_ADDRESS>0-linux.run

I think I got vsim working! The overrides are a bit ugly the way they are now though, can this be applied to all of pkgs cleanly somehow?

I don't think it's that bad, but other reviewers may have a stronger say on this then I :)

I think I got vsim working! The overrides are a bit ugly the way they are now though, can this be applied to all of pkgs cleanly somehow?

I don't think it's that bad, but other reviewers may have a stronger say on this then I :)

It is acceptable overlays might add more complexity than this.

It's seems as if it's because the file names are different - mine is ./QuartusSetup-<IP_ADDRESS>0-linux.run and the expected filename is QuartusLiteSetup-<IP_ADDRESS>0-linux.run.

There is a drop-down menu at the top of the download page, where you can select between "Pro", "Standard" and "Lite" downloads, above the release option. This should be set to "Lite", the "Standard" option results in the "QuartusLiteSetup-${version}.run". This URL should set it appropriately: https://fpgasoftware.intel.com/19.1/?edition=lite&platform=linux

@kwohlfahrt Could you add this as a comment or in the error message?

\o/ Thanks, can't wait to try this out.
Anyone reading might also be interested in @bjornfor's quartus packaging: https://github.com/bjornfor/nixos-config/blob/master/pkgs/altera-quartus/default.nix

@expipiplus1 you can try right away by running nix-env -f. -iA quartus inside nixpkgs/ repo.

Quartus is in nixpkgs master? Nice!

@kwohlfahrt would it be possible to add the nios2 eclipse stuff as an optional component? its a manual install. I tried my hand at it but I didn't get far...

@meck I'm not currently planning to work on the eclipse integration. I haven't used eclispe before, and the instructions linked call for a very old version if eclipse that might be a lot of effort to get working.

Thats resonable, thanks anyway!


Power generators Overclock is givin wrong values

When tryin to overclock power generators like the coal generator, once you change the value it doesn't change according to the in game values.
Ex.:
Coal generator at 100%
in game -> -15 coal, -45 water, +75 MW
SA -> -15 coal, -45 water,+75 MW
Coal generator at 200%
in game -> -30 coal, -90 water, +150 MW
SA -> -23.13 coal, -69.4 water, +115.67 MW

Ah, right at some point they changed it so overclocked generators scale linearly (while other machines still lose efficiency when overclocked). I'll see about fixing that this week.


Source control commit button is disabled

Type: Bug
Expected result: make changes to existing file, open source control, stage the changes, provide the commands and click the commit button to save the changes.
 Disable Extensions

Select View and pick Command Palette...
Run Developer: Reload With Extensions Disabled
👉 See if the issue reproduces

[ ] 2.) Disable Configuration

Select View and pick Command Palette...
Run Profiles: Create a Temporary Profile
👉 See if the issue reproduces

[ ] 3.) Try VS Code Insiders

Download VS Code Insiders
Install and Run it
👉 See if the issue reproduces

Then pick one of the three resolutions depending on which step has helped:

Disabling my Extensions helped
Please run the command Start Extension Bisect and follow the instructions to find the extension that is causing this issue.

Please report the issue to the extension causing this.

Disabling my configuration helped
Please report back more details about your configuration, including settings.

Using VS Code Insiders has helped
✅ This likely means that the issue has been addressed already and will be available in an upcoming release. You can safely use VS Code Insiders until the new stable version is available.

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Fixed crash on drawing lines

Successfully draws line without a crash.
var shape = new PIXI.Graphics()
    .lineStyle(1, 0x0, 1)
    .moveTo(0, 0)
    .lineTo(200, 200);

nice @bigtimebuddy ! I just ran into this in v4 too :)


Documentation improvements

Codecov Report

Merging #44 (238b34f) into master (ec6f74a) will decrease coverage by 1.55%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #44      +/-   ##
==========================================
- Coverage   67.61%   66.06%   -1.56%
==========================================
  Files           6        6
  Lines         494      495       +1
==========================================
- Hits          334      327       -7
- Misses        160      168       +8

Impacted Files
Coverage Δ

src/API.jl
53.48% <100.00%> (+1.10%)
:arrow_up:

src/update_locations.jl
70.86% <0.00%> (-6.30%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ec6f74a...238b34f. Read the comment docs.


Filter by clan on admin seat picker

In the manage seats view it would be nice to filter the unseated users by clan. For example when seating users in the STAFF clan into a staff area.

Thoughts for an interim fix, you can always impersonate the admin of the staff clan and use their normal picker

Thoughts for an interim fix, you can always impersonate the admin of the staff clan and use their normal picker

At present the staff seats are "unavailable" to the normal seat picker. see #7

ah yeah staff is a unique case where it would need to be admin seating through the admin interface. makes sense


Add a survey request to the calculator page

How about:  “We want your help to make the microCOVID calculator as helpful as possible!  Please fill out our user survey to help us prioritize new features.”   We can put it as a separate paragraph under the main intro paragraph.
https://forms.gle/WzFWcmyXwQMNRqGa7

I am in support of this.
On Tue, Jan 5, 2021 at 7:06 PM Jeremy Blanchard<EMAIL_ADDRESS>wrote:

How about: “We want your help to make the microCOVID calculator as helpful
as possible! Please fill out our user survey to help us prioritize new
features.” We can put it as a separate paragraph under the main intro
paragraph.
https://forms.gle/WzFWcmyXwQMNRqGa7
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/microcovid/microcovid/issues/622, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARXD7BILXFX6YBNLCKYYC53SYPHR3ANCNFSM4VW2FBAA
.

--
"A man who dares to waste one hour of time has not discovered the value of
life." - Charles Darwin
"Never put off till tomorrow what may be done the day after tomorrow just
as well."  " *-Theodor Geisel
*“A real friendship ought to introduce each person to unexpected weirdness
in the other.” *-Jaron Lanier

I am in support of this.
On Tue, Jan 5, 2021 at 7:06 PM Jeremy Blanchard<EMAIL_ADDRESS>wrote:

How about: “We want your help to make the microCOVID calculator as helpful
as possible! Please fill out our user survey to help us prioritize new
features.” We can put it as a separate paragraph under the main intro
paragraph.
https://forms.gle/WzFWcmyXwQMNRqGa7
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/microcovid/microcovid/issues/622, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARXD7BILXFX6YBNLCKYYC53SYPHR3ANCNFSM4VW2FBAA
.

--
"A man who dares to waste one hour of time has not discovered the value of
life." - Charles Darwin
"Never put off till tomorrow what may be done the day after tomorrow just
as well."  " *-Theodor Geisel
*“A real friendship ought to introduce each person to unexpected weirdness
in the other.” *-Jaron Lanier


[main] Update flake.lock & generated files

Flake lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/9227223f6d922fee3c7b190b2cc238a99527bbb7' (2024-07-03)
  → 'github:hercules-ci/flake-parts/8471fe90ad337a8074e957b69ca4d0089218391d' (2024-08-01)
• Updated input 'home-manager':
    'github:nix-community/home-manager/58cef3796271aaeabaed98884d4abaab5d9d162d' (2024-07-31)
  → 'github:nix-community/home-manager/afc892db74d65042031a093adb6010c4c3378422' (2024-08-02)
• Updated input 'nix-darwin':
    'github:lnl7/nix-darwin/0413754b3cdb879ba14f6e96915e5fdf06c6aab6' (2024-07-27)
  → 'github:lnl7/nix-darwin/f7142b8024d6b70c66fd646e1d099d3aa5bfec49' (2024-08-02)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/52ec9ac3b12395ad677e8b62106f0b98c1f8569d' (2024-07-28)
  → 'github:NixOS/nixpkgs/9f918d616c5321ad374ae6cb5ea89c9e04bf3e58' (2024-07-31)
• Updated input 'nuschtosSearch':
    'github:NuschtOS/search/16565307c267ec219c2b5d3494ba66df08e7d403' (2024-07-28)
  → 'github:NuschtOS/search/3f5abffa5f28b4ac3c9212c81c5e8d2d22876071' (2024-08-01)

Generate
No changes

CI is failing because it is attempting to build the generated rust-analyzer options package.
This is because all checks and packages are built during CI, and the rust-analyzer options is listed in the flake's packages.
Can't see any other issues, but do we want to merge something that will cause nix flake check to fail?

Sorry, didn't realize you had pushed to the main repo, so by running the CI again I've clobbered your PR.

Sorry, didn't realize you had pushed to the main repo, so by running the CI again I've clobbered your PR.

I did trigger the action purposefully, no worry !

@Mergifyio queue


NaN inconsistency

This one is a really weird bug to me and I am not sure how to construct a minimum working example that reproduces the error.
If I call my function (which contains the computation of the second derivative) I get a NaN on a given batch:
jnp.isnan(fn(params, samples)).any()
True

So naturally I am interested in the element where it fails:
jnp.where(jnp.isnan(fn(params, samples)))
(DeviceArray([2479], dtype=int32),)

But if I now just compute the value only of that value, it's not nan!
fn(params, samples[jnp.isnan(fn(params, samples))])
DeviceArray([-6.546462], dtype=float32)

It seems to depend on the batch size, if I just take a slice of the batch it also doesn't throw any nans:
jnp.isnan(fn(params, samples[2400:2500])).any()
False

Though, larger chunks, e.g., 2400: still throw nan.
For context, my function fn is a vmapped with jax.vmap, so it is unaware of any batch dimension.
Here's a stacktrace if jax_debug_nans is True:
---------------------------------------------------------------------------
FilteredStackTrace                        Traceback (most recent call last)
<ipython-input-229-5a9b2d0e1c1a> in <module>
     11             'width': f'{width:.3f}',
---> 12             'nan': f'{jnp.isnan(el_jit(params, samples)).any()}'
     13         })

/nfs/staff-ssd/gaoni/repos/wfnet_jax/wfnet/hamiltonian.py in local_energy(params, electrons)
     39         potential = potential_energy(electrons, atoms, charges)
---> 40         kinetic = kinetic_energy_fn(params, electrons)
     41         return potential + kinetic

/nfs/staff-ssd/gaoni/repos/wfnet_jax/wfnet/hamiltonian.py in laplacian_of_f(params, electrons)
     17
---> 18         return -0.5 * lax.fori_loop(0, n, ith_sum_element, 0.0)
     19

FilteredStackTrace: FloatingPointError: invalid value (nan) encountered in while

The stack trace above excludes JAX-internal frames.
The following is the original exception that occurred, unmodified.

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

The above exception was the direct cause of the following exception:

FloatingPointError                        Traceback (most recent call last)
<ipython-input-229-5a9b2d0e1c1a> in <module>
     10             's_std': f'{samples.std():.3f}',
     11             'width': f'{width:.3f}',
---> 12             'nan': f'{jnp.isnan(el_jit(params, samples)).any()}'
     13         })

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/_src/traceback_util.py in reraise_with_filtered_traceback(*args, **kwargs)
    137   def reraise_with_filtered_traceback(*args, **kwargs):
    138     try:
--> 139       return fun(*args, **kwargs)
    140     except Exception as e:
    141       if not is_under_reraiser(e):

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/api.py in f_jitted(*args, **kwargs)
    410         print("Invalid nan value encountered in the output of a C++-jit "
    411               "function. Calling the de-optimized version.")
--> 412         return cache_miss(context, *args, **kwargs)[0]  # probably won't return
    413     elif _jit_is_disabled():
    414       return cpp_jitted_f(*args, **kwargs)

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/api.py in cache_miss(_, *args, **kwargs)
    295       _check_arg(arg)
    296     flat_fun, out_tree = flatten_fun(f, in_tree)
--> 297     out_flat = xla.xla_call(
    298         flat_fun,
    299         *args_flat,

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/core.py in bind(self, fun, *args, **params)
   1392
   1393   def bind(self, fun, *args, **params):
-> 1394     return call_bind(self, fun, *args, **params)
   1395
   1396   def process(self, trace, fun, tracers, params):

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/core.py in call_bind(primitive, fun, *args, **params)
   1383   tracers = map(top_trace.full_raise, args)
   1384   with maybe_new_sublevel(top_trace):
-> 1385     outs = primitive.process(top_trace, fun, tracers, params)
   1386   return map(full_lower, apply_todos(env_trace_todo(), outs))
   1387

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/core.py in process(self, trace, fun, tracers, params)
   1395
   1396   def process(self, trace, fun, tracers, params):
-> 1397     return trace.process_call(self, fun, tracers, params)
   1398
   1399   def post_process(self, trace, out_tracers, params):

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/core.py in process_call(self, primitive, f, tracers, params)
    623
    624   def process_call(self, primitive, f, tracers, params):
--> 625     return primitive.impl(f, *tracers, **params)
    626   process_map = process_call
    627

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/interpreters/xla.py in _xla_call_impl(fun, device, backend, name, donated_invars, *args)
    601     # be empty.
    602     for store in fun.stores: store and store.reset()
--> 603     return fun.call_wrapped(*args)  # probably won't return
    604
    605 def flatten_shape(s: XlaShape) -> Sequence[Tuple[Sequence[int], XlaShape]]:

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/linear_util.py in call_wrapped(self, *args, **kwargs)
    164
    165     try:
--> 166       ans = self.f(*args, **dict(self.params, **kwargs))
    167     except:
    168       # Some transformations yield from inside context managers, so we have to

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/_src/traceback_util.py in reraise_with_filtered_traceback(*args, **kwargs)
    137   def reraise_with_filtered_traceback(*args, **kwargs):
    138     try:
--> 139       return fun(*args, **kwargs)
    140     except Exception as e:
    141       if not is_under_reraiser(e):

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/api.py in batched_fun(*args, **kwargs)
   1235     in_axes_flat = flatten_axes("vmap in_axes", in_tree, (in_axes, 0), kws=True)
   1236     axis_size = _mapped_axis_size(in_tree, args_flat, in_axes_flat, "vmap", kws=True)
-> 1237     out_flat = batching.batch(
   1238         flat_fun, axis_name, axis_size, in_axes_flat,
   1239         lambda: flatten_axes("vmap out_axes", out_tree(), out_axes)

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/linear_util.py in call_wrapped(self, *args, **kwargs)
    164
    165     try:
--> 166       ans = self.f(*args, **dict(self.params, **kwargs))
    167     except:
    168       # Some transformations yield from inside context managers, so we have to

/nfs/staff-ssd/gaoni/repos/wfnet_jax/wfnet/hamiltonian.py in local_energy(params, electrons)
     38     def local_energy(params, electrons: jnp.ndarray):
     39         potential = potential_energy(electrons, atoms, charges)
---> 40         kinetic = kinetic_energy_fn(params, electrons)
     41         return potential + kinetic
     42

/nfs/staff-ssd/gaoni/repos/wfnet_jax/wfnet/hamiltonian.py in laplacian_of_f(params, electrons)
     16             return output + grad[i]**2 + gradgrad[i]
     17
---> 18         return -0.5 * lax.fori_loop(0, n, ith_sum_element, 0.0)
     19
     20     return laplacian_of_f

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/_src/traceback_util.py in reraise_with_filtered_traceback(*args, **kwargs)
    137   def reraise_with_filtered_traceback(*args, **kwargs):
    138     try:
--> 139       return fun(*args, **kwargs)
    140     except Exception as e:
    141       if not is_under_reraiser(e):

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/_src/lax/control_flow.py in fori_loop(lower, upper, body_fun, init_val)
    201                              length=upper_ - lower_)
    202   else:
--> 203     _, _, result = while_loop(_fori_cond_fun, _fori_body_fun(body_fun),
    204                               (lower, upper, init_val))
    205   return result

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/_src/traceback_util.py in reraise_with_filtered_traceback(*args, **kwargs)
    137   def reraise_with_filtered_traceback(*args, **kwargs):
    138     try:
--> 139       return fun(*args, **kwargs)
    140     except Exception as e:
    141       if not is_under_reraiser(e):

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/_src/lax/control_flow.py in while_loop(cond_fun, body_fun, init_val)
    294                         body_tree, body_jaxpr.out_avals,
    295                         in_tree_children[0], init_avals)
--> 296   outs = while_p.bind(*itertools.chain(cond_consts, body_consts, init_vals),
    297                       cond_nconsts=len(cond_consts), cond_jaxpr=cond_jaxpr,
    298                       body_nconsts=len(body_consts), body_jaxpr=body_jaxpr)

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/core.py in bind(self, *args, **params)
    282     top_trace = find_top_trace(args)
    283     tracers = map(top_trace.full_raise, args)
--> 284     out = top_trace.process_primitive(self, tracers, params)
    285     return map(full_lower, out) if self.multiple_results else full_lower(out)
    286

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/interpreters/batching.py in process_primitive(self, primitive, tracers, params)
    152     else:
    153       batched_primitive = get_primitive_batcher(primitive, self.axis_name)
--> 154       val_out, dim_out = batched_primitive(vals_in, dims_in, **params)
    155     if primitive.multiple_results:
    156       return map(partial(BatchTracer, self), val_out, dim_out)

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/_src/lax/control_flow.py in _while_loop_batching_rule(args, dims, axis_name, cond_nconsts, cond_jaxpr, body_nconsts, body_jaxpr)
    399               for x, d, was_bat, now_bat in zip(init, init_dims, init_bat, carry_bat)]
    400
--> 401   outs = while_p.bind(*(new_consts + new_init),
    402                       cond_nconsts=cond_nconsts, cond_jaxpr=cond_jaxpr_batched,
    403                       body_nconsts=body_nconsts, body_jaxpr=body_jaxpr_batched)

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/core.py in bind(self, *args, **params)
    282     top_trace = find_top_trace(args)
    283     tracers = map(top_trace.full_raise, args)
--> 284     out = top_trace.process_primitive(self, tracers, params)
    285     return map(full_lower, out) if self.multiple_results else full_lower(out)
    286

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/core.py in process_primitive(self, primitive, tracers, params)
    620
    621   def process_primitive(self, primitive, tracers, params):
--> 622     return primitive.impl(*tracers, **params)
    623
    624   def process_call(self, primitive, f, tracers, params):

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/interpreters/xla.py in apply_primitive(prim, *args, **params)
    240   """Impl rule that compiles and runs a single primitive 'prim' using XLA."""
    241   compiled_fun = xla_primitive_callable(prim, *unsafe_map(arg_spec, args), **params)
--> 242   return compiled_fun(*args)
    243
    244

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/interpreters/xla.py in _execute_compiled_primitive(prim, compiled, result_handler, *args)
    359   input_bufs = list(it.chain.from_iterable(device_put(x, device) for x in args if x is not token))
    360   out_bufs = compiled.execute(input_bufs)
--> 361   check_special(prim, out_bufs)
    362   return result_handler(*out_bufs)
    363

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/interpreters/xla.py in check_special(prim, bufs)
    376   if FLAGS.jax_debug_infs or FLAGS.jax_debug_nans:
    377     for buf in bufs:
--> 378       _check_special(prim.name, buf.xla_shape(), buf)
    379
    380 def _check_special(name, xla_shape, buf):

~/miniconda3/envs/jax/lib/python3.8/site-packages/jax/interpreters/xla.py in _check_special(name, xla_shape, buf)
    382   if dtypes.issubdtype(xla_shape.element_type(), np.inexact):
    383     if FLAGS.jax_debug_nans and np.any(np.isnan(buf.to_py())):
--> 384       raise FloatingPointError(f"invalid value (nan) encountered in {name}")
    385     if FLAGS.jax_debug_infs and np.any(np.isinf(buf.to_py())):
    386       raise FloatingPointError(f"invalid value (inf) encountered in {name}")

FloatingPointError: invalid value (nan) encountered in while

Maybe it helps to have code that we can run to repro this error even if it's not minimal?

This might also be backend-specific. Was this on CPU, GPU, or TPU?
I think we've seen issues like this on CPU to do with LLVM vectorization not preserving nan semantics, or something like that.

Maybe it helps to have code that we can run to repro this error even if it's not minimal?

I am afraid I can not share the source code. However, I tracked it down to taking the derivative (or second derivative) of jnp.log of a value that is very close to 0. While the forward pass does not result in nan the gradient (or second derivative) computation did. The nan is expected as the gradient of log(0) is undefined. However, the inconsistency here bothers me.

This might also be backend-specific. Was this on CPU, GPU, or TPU?
I think we've seen issues like this on CPU to do with LLVM vectorization not preserving nan semantics, or something like that.

I got this error on a CUDA 10.2 GPU.

Which jaxlib version are you using? (If not 0.1.64, try upgrading.)

I experienced this issue with 0.1.62. Though, I reworked my code to be more numerically stable by now. Sorry, that I can not reproduce this.


Fix TempUsage memory leak

If you have an application that creates lots of queues it will eventually
fail with OOM because TempUsage is started on Queue#start but never stopped.
The systemUsage.getTempUsage().start() used on the Queue#start
adds elements on a List from TempUsage parent and these elements
are never removed.
To reproduce this issue you need to leave an application
running for a long time creating different queues.
The only way to avoid the leak right now is to stop the BrokerService,
which isn't a solution.

Guys can you take a look at this. This issue requires a server restart from time to time to avoid an application OOM.

Thanks for the PR, this looks like a good catch. A couple things: Pull requests should have a Jira associated with it describing the issue. https://issues.apache.org/jira/projects/AMQ . Also, ideally it would be good to include a unit test that can demonstrate the issue and show that it's fixed.
In this case I'll create the Jira as I am going to re-work the fix slightly and I will a test real quick because we are about to do a new release but for the future you can keep that in mind.

@artpdr - I amended/merged your commit and updated some tests. https://issues.apache.org/jira/browse/AMQ-8509
https://github.com/apache/activemq/commit/d1e9ba68b3cbea3e9294cf4993d005c3c8ea86f2
Thanks again for catching that, this will go into 5.17.0 and 5.16.5.

Thanks a lot @cshannon. Good point on the testing part... I didn't include the test because I didn't find any test for that class.


Add support for authentication as a GitHub App

This commit adds support for authentication as a GitHub App.
This is beneficial in several ways, including:

Increased rate limits
Better separation of access
Finer grained control over access
Removes the need for a bot or service account

As part of these changes, have added the github.com/bradleyfalzon/ghinstallation/v2
module and it's associated dependencies.
Added several new configuration fields:

UseGitHubApp - Boolean flag signalling if user wants to auth as a GitHub App
PrivateKey - PEM encoded private key
PrivateKeyFile - Filename for RSA Private Key generated for GitHub App
AppID - GitHub App application numerical identifier
InstallationID - GitHub App installation numerical identifier

N.B I'm currently working on documentation and integration testing, however I thought it would be useful to get early feedback...

Any updates on when this can be merged? Would love to use Github App as an authentication to take advantage of the 15,000 requests per hour (rate limit).


vtkOBJReader in sample.cpp not reading the whole mesh

http://vtk.1045678.n5.nabble.com/vtkOBJReader-not-reading-the-whole-mesh-td5745864.html

mesh_sampling.cpp

Yes. There is a problem with vtkOBJReader while reading some ShapeNet models where parts of the model has tcoords/normals and other parts don't. I don't know if they have fixed that in the latest version. I solved this issue by adding the following code after line 956 in vtkOBJReader.cxx and rebuild VTK.
// Here we turn off texturing and/or normals
if (n_tcoord_pts == 0)
{
  hasTCoords = false;
}
if (n_normal_pts == 0)
{
  hasNormals = false;
}

Yes. There is a problem with vtkOBJReader while reading some ShapeNet models where parts of the model has tcoords/normals and other parts don't. I don't know if they have fixed that in the latest version. I solved this issue by adding the following code after line 956 in vtkOBJReader.cxx and rebuild VTK.
// Here we turn off texturing and/or normals
if (n_tcoord_pts == 0)
{
  hasTCoords = false;
}
if (n_normal_pts == 0)
{
  hasNormals = false;
}

I'm using VTK 8.2.0, this code is useful, however, it shuld locate after line  858.

Yes. There is a problem with vtkOBJReader while reading some ShapeNet models where parts of the model has tcoords/normals and other parts don't. I don't know if they have fixed that in the latest version. I solved this issue by adding the following code after line 956 in vtkOBJReader.cxx and rebuild VTK.
// Here we turn off texturing and/or normals
if (n_tcoord_pts == 0)
{
  hasTCoords = false;
}
if (n_normal_pts == 0)
{
  hasNormals = false;
}

I'm using VTK 8.2.0, this code is useful, however, it shuld locate after line  858.

@gillbam Hi, I am also using VTK 8.2.0 and rebuild it after adding the code above, however I am still getting errors mentioned in #40 . Do you have that issue?

@gillbam Hi, I am also using VTK 8.2.0 and rebuild it after adding the code above, however I am still getting errors mentioned in #40 . Do you have that issue?

@gillbam NVM I have fixed that. Thanks for the direction of VTK 8.2.0.

@gillbam NVM I have fixed that. Thanks for the direction of VTK 8.2.0.


In Memory File Zipping

Replace the code to zip the files in memory instead of writing them to
the disk first and some minor code adjustment and cleanup.
--
I was working on this code to submit files through the IDES Gateway, when creating several files or the same file multiples times it becomes bit messy having all these files in the destination folder, generating just the final zip file without the need of creating the "temporary" files first would produce a cleaner result. And the user can always find the files inside the .Zip file in case he wants to take a look to them.
Also moved the Creation of the Metadata XML file to the XMLManager class.

Much more elegant than my solution of programatically deleting the leftover files, nice work. Would be nice to see this merged.


Function should only do one thing - Invalid example

Checking the db for "isClientActive" would likely return a promise, and this makes clientRecord.isActive always return false since clientRecord is actually a Promise which doesn't have isActive prop.. But even if fix that.. When we filter by this function for active clients we will get all record since this function returns a promise which evaluates to true when filtering

Feel free to open a PR fixing this! Thanks!

Want to know if this is still an issue..?

@anshul2807 I haven't fixed this. I see the issue is still in there

ok , I'm working on this issue.


Out of Bounds Selection on Failure to Create Script

Godot version:
3.0.6
OS/device including version:
Windows 10 GTX770 AMD FX8350
Issue description:
When creating a script, if you select a directory and then fail to create the script, but instead select somewhere else like the minimize button, the script creation prompt will disappear and generate an "ERROR: _select_ray: Bug? at editor/plugins/spatial_editor_plugin.cpp:394", the editor can not be minimized and some functionality is lost until either the program is restarted or the window loses focus.
Steps to reproduce:
See above.
Minimal reproduction project:
Simple enough to not need a project.

@TheBritain I'm not sure how to reproduce your error. Is it just minimizing the window while the ceeate script dialog is open?
It's not clear to me what "fail to create the script" means.

Apologies, to clarify I meant, when you don't create the script. As in you do not click "Create" nor close the menu, and you click somewhere else.


New components, removal of old components

From the OpenDSS v9 announcement:

PVSystem2, Storage2, InvControl2 and StorageController2 are part of the base object suite in OpenDSS, deprecating their predecessors. These objects are now PVSystem, Storage, InvControl and StorageControler.

Although the upstream code removed some components, we should keep them for a while somehow. Many papers and theses were developed with the old models, so we should try to keep them reproducible if there isn't much overhead.
See also #74

A mechanism to toggle the old models is available since 1a696479b7e334818ee84fad53e62bf9460f0fa8. With this, by default, the new models, previously suffixed with "2", are now the default models and the old models are removed. If the users have old code that need to use the old models, the LegacyModels flag can be toggled to enable them, replacing the new models.
https://github.com/dss-extensions/dss_capi/blob/1a696479b7e334818ee84fad53e62bf9460f0fa8/include/v7/dss_capi.h#L1393-L1405


Capitalization error - changed GetX() and GetY() to getX() and getY()

Benny changed his writing style to capitalizing first letter, it was correct. Look into Vector2f class to see, maybe you missed that.


Doesn't process nested object properly via jsConverter

Claim: Difficulty with interop with JS when accepting nested object param from JS to Reason
Reasonml Ver: 3.3.2

No problem with taking parameters from JS and matching to any type contains optional with one depth

But it seems to lose values wrapped by option if your code have more depth like below

type file = {
  name: option(string),
  content: option(string),
};

<EMAIL_ADDRESS>{jsConverter: newType}]
type configMap = {
  name: option(string),
  namespace: option(string),
  file: file
};

proof using Test.re
console log image from the proof:

Also, please let me know if this issue should register in Bucklescript instead

close since it's a bucklescript issue


Wrong proportions at the output

Hi, great job! But i have a some issue with proportions. I take a portrait orientation and get the output image, which is rotated and squeezed

Hi,
Can you upload the image so that I can have to look at the issue?
Thanks.

Hi, I seem to be having the same or similar issue. From a file select, if a mobile user chooses to take a new picture instead of choosing one from their gallery and the photo they take is in portrait, then the resulting compressed photo has a black bar across the bottom, and the original picture is squished into a smaller area.

@ArthurMiroslavsky @Awestin17
The issues should be addressed in the new version v1.0.2.
Please try. Thanks!

@Donaldcwl
Will do more testing when I get a chance but everything seems to be working as expected. Great work man!

@Awestin17 Thanks!


Change shift states of different keys

I am trying to create the Programmer DVORAK layout in Karabiner Elements, but I don't see a way to map the keys so that you can separate what is on each key. For example, in Programmer DVORAK that tilde is in the same spot as QWERTY, but the dollar sign is the non-shift state of that key, not the backtick.
Also, the numbers are all mapped with different symbols and it is reverse, so you have to press shift to get to the numbers.

I think you need #16 for it.


Adds url parse and removes the usage of anchor

What changed and why
This PR replaces the usage of document to parse a URL with the library url-parse. By doing this Pretender can be used in environments that don't include the DOM such as React Native.
The work done here is based on this PR https://github.com/pretenderjs/pretender/pull/267. Additionally I added a couple of fixes that @xg-wang requested.
The only review comments that are pending from the old PR are the following:
https://github.com/pretenderjs/pretender/pull/267#discussion_r324433409
https://github.com/pretenderjs/pretender/pull/267#discussion_r324433457
To solve the pending issues I originally thought of using the Karma launcher for IE but that won't work on a IE environment because we won't have an IE binary. I was thinking that we could use SauceLabs or BrowserStack to run the tests on different browsers.
I would appreciate it if @xg-wang or @samselikoff  would share their thoughts on how the IE issue could be solved. If we decide to go with SauceLabs we can request an Open Source Account.

@eluciano11 thanks so much for jumping on this!!
@xg-wang Can we go ahead and merge this, and deal with the IE testing later? Since we don't have IE test coverage for the rest of Pretender I don't think it should be a blocker for this PR.

@samselikoff no problem, happy to help!

Hi @eluciano11 is this still draft or it's ready be merged?

@xg-wang should be good to go!

Awesome, thanks again!
We can take care of ie coverage elsewhere.

Np, sounds good!


[Haskell] Russian translate for hello-world/index.md

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

LGTM


(PUP-10643) Fix mark => none not being idempotent with dpkg provider

On Debian-based platforms, puppet will always report changes if mark is set to none on a resource. This commit updates the provider to properly parse packages that are not held.
Found in https://github.com/puppetlabs/puppet/pull/8267#issuecomment-675418735

Jenkins please test this on debian8-64,debian9-64,debian10-64

CLA signed by all contributors.


Migrate CLI functionality: simple_bias_correction

Moved functionality out of the CLI for apply_bias_correction.py and into the ApplyBiasCorrection plugin
Description
I have updated the ApplyBiasCorrection plugin to the new style, where it is called with the cubes to be processed and initialised with any other arguments.
Deliberately keeping this first one small so I can familiarize myself with the repo, actions and any additional science requirements
Issues:

https://github.com/metoppv/improver/issues/1998

Testing:

[x] Updated tests
[x] Ran tests and they passed OK

CLA

[x] If a new developer, signed up to CLA

@cpelley when you are happy I will request a second review from the science team

🏆 You might consider moving these specific acceptance tests to the test_ApplyBiasCorrection.py
unittests module:
https://github.com/metoppv/improver/blob/ba3f4e02e19df491460ec369c2f01b0cb277536a/improver_tests/acceptance/test_apply_bias_correction.py#L139-L203
That is, test_no_bias_file, test_missing_fcst_file and test_multiple_fcst_files.
This is optional, but should be really trivial to move them over though while you are here.  These are terribly inefficient and unnecessary as acceptance tests.


Simon's Algorithm Kata

Co-authored-by: Mikolaj Lisik<EMAIL_ADDRESS>Co-authored-by: Szymon Stankiewicz<EMAIL_ADDRESS>Co-authored-by: Kasjan Siwek<EMAIL_ADDRESS>Co-authored-by: Martin Roetteler<EMAIL_ADDRESS>

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


Bump version to 0.0.21 for release

Update the sample pom.xml too.

Current coverage is 61.92% (diff: 100%)

Merging #130 into master will not change coverage

@@             master       #130   diff @@
==========================================
  Files            48         48
  Lines          2227       2227
  Methods           0          0
  Messages          0          0
  Branches        329        329
==========================================
  Hits           1379       1379
  Misses          771        771
  Partials         77         77

Powered by Codecov. Last update 972c202...4545e67

PTAL

LGTM


Comment added

Thanks for posting a pull request to help out with scope. Unfortunately do the added comments not really help with readability, nor are they adding any value right now. Maybe you can explain what you were trying to do? Closing this PR for now.


Skip repeated checks on convert function in TColumnGenerator

:mag: Description
Issue References 🔗

This pull request fixes #
Describe Your Solution 🔧

TColumnGenerator is used for generating column-based data. This PR skips repeated checks on checking nullability of the convert function in generating single column.

Types of changes :bookmark:

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Test Plan 🧪
Behavior Without This Pull Request :coffin:
Behavior With This Pull Request :tada:
Related Unit Tests

Checklist 📝

[ ] This patch was not authored or co-authored using Generative Tooling

Be nice. Be informative.

Codecov Report
Attention: Patch coverage is 0% with 4 lines in your changes missing coverage. Please review.

Project coverage is 0.00%. Comparing base (d3520dd) to head (9db16ef).

Files with missing lines
Patch %
Lines

...apache/kyuubi/engine/result/TColumnGenerator.scala
0.00%
4 Missing :warning:

Additional details and impacted files
@@          Coverage Diff           @@
##           master   #6786   +/-   ##
======================================
  Coverage    0.00%   0.00%
======================================
  Files         687     687
  Lines       42439   42440    +1
  Branches     5793    5793
======================================
- Misses      42439   42440    +1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Thanks, merged to master (1.11.0) and branch-1.10 (1.10.1).


Remove deprecated useBuiltIns from .babelrc

The useBuiltIns has been removed in v7 of @babel/plugin-transform-runtime and causes an error when attempting to run the current with-configured-preset-env example. This PR removes that option and fixes the error.

Good catch! Thanks! 🙏


Can not update documentation of package

Dear all,
I tried to update my documentation this morning, but I can not achieve it.

Since the platform is updated (pypi.org), the button for uploading documentation is gone. So, I tried to upload it via python setup.py upload_docs

When I run python setup.py upload_docs, I got two different results from two different machines.
a. The script executed and the files were submitted to https://pypi.python.org/pypi successfully. However, when I open the package documentation in http://pythonhosted.org, the documentation didn't be updated.
b. I used another machine to run python setup.py upload_docs. For this machine, the script could not execute successfully. A error came out:
Upload failed (410): Gone (This API has been deprecated and removed from legacy PyPI in favor of using the APIs available in the new PyPI.org implementation of PyPI (located at https://pypi.org/). For more information about migrating your use of this API to PyPI.org, please see https://packaging.python.org/guides/migrating-to-pypi-org/#uploading. For more information about the sunsetting of this API, please see https://mail.python.org/pipermail/distutils-sig/2017-June/030766.html)

Does http://pythonhosted.org still work? Or should I change to use https://readthedocs.org/?
Thank you.
Sung-Huan Yu

Hi,
Right, uploading documentation has become much more difficult than it used to be. The web-based method was by far the easiest. Why has it gone?
In general, the whole migration is so depressive, with a lot of hidden requirements (e.g. "incorrect e-mail" that used to be ok) and undone documentation and undone web pages with dead links. It seems that the doers only consider the scenarios they have used and not so many others'. Bad job. Thumbs down.

See Issue #582

Sorry for the long delay in the response, but as @lingthio mentioned, this will be solved by #582 so I'm going to close this issue in favor of that one.


New Updates Causing problem

Whenever we clicked on logged in users this error is coming
Error: Uncaught TypeError: s.slimScroll is not a functionUrl: http://<IP_ADDRESS>:8085/home/Maxx/maxxlogin/jquery-chat-master/js/jquery.main.jsLine: 780

Hi
If you are working on master branch add to you index the next line
 <script src='js/jquery.slimscroll.min.js'></script>

take a look in 'index.html' as an a working example

Thanks Appreciated.

Thanks to you for contribute with the chat.


There should be an alternative way to specify a plugins name

As of now, ember-cli-deploy is implicitly requiring that plugins have names like ember-cli-deploy-[plugin]. While this definitely seems like a good convention to have, I think we should allow an escape valve for people who want/need to name their addon differently.

@jasonkriss I've been silently following this discussion on slack. What is an example of where you'd want to name it differently?

An idea of how to accomplish this would be to allow a developer to specify a name via their package.json:
  ...
  "ember-addon": {
    "ember-cli-deploy-plugin-name": "fooey"
  }
  ...

By relying on the package name, we get a natural suggestion of uniqueness since package names have to be unique on npm. Our configuration model cannot accommodate two plugins with the same name. In practice, I don't think this will be an issue, but just wanted to mention it as a consideration.

@achambers Let me just preface this by saying that I'm not completely opposed to keeping it the way it is now. I think you guys have considered the reasoning behind this more than I have. That being said, my use case is basically that i want to have an addon that is both a ember-cli-deploy-plugin as well as ember-cli-deploy-plugin-pack. The reason I want to do this is that I’m building a deploy process that doesn’t make sense independently at all and is completely dependent on both the build and gzip plugins. Being forced to name it something like ember-cli-deploy-[plugin] just isn't as meaningful in this case.
This whole argument is moot if an addon can't be both a plugin and a pack though. @lukemelia I definitely see your point on the uniqueness aspect. Realistically, this might be reason enough to enforce the naming constraint.
At the very least, I think we'll need to make sure the documentation makes it clear that the name format is a strict requirement.

In 1.0.x we started supporting aliasing - please try the beta-1 package and let us know if there's anything additionally that this change doesn't cover.
I'm closing this issue now, but I'd be happy to learn more about your deploy process & see how it can fit to ember-cli-deploy.


Sort images into subdirectories per Markdown page

Pictures which appear on multiple pages are now stored multiple times, so img/ subfolders can be safely moved or removed without changing other pages.
Some images were not used anymore. One image was missing (old PCB 1.1 image, not the one used in de/platinen/ESP8266.html) but still referenced.
Poor one's linter to check that all links to images are still working:

grep -HirnE '(.jpg|.png|.gif)' de > /tmp/de
awk -F\( '{print $2}' de | awk -F\) '{print $1}' > de_sauber

Manually remove external links
Manually remove all trailing ../

cd into rancilio-handbook repo
for image in cat /tmp/de_sauber`; do ls $image; done
ls error messages indicate missing or broken links
Repeat for de/, en/ and archive/

thats awesome, thank you @eliba


StateMachine can find event that can be applied given the current state, even if multiple events with the same name exist + some other changes.

Summary:

Make StateMachine.availableStates property publicly available for reading;
Consolidate addState() operations; add checks so that state names are unique regardless of the way they were added;
Eliminate code duplication in StateMachine._fireEventNamed() function for cases when the shouldFireEvent block was set and when it was not, by extracting the duplicate code into local closure variable;
Make it possible for the state machine to find proper transition from state to state, taking into account event's name and sourceValues.

Codecov Report

Merging #6 into master will decrease coverage by 0.6%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master       #6      +/-   ##
==========================================
- Coverage     100%   99.39%   -0.61%
==========================================
  Files           3        3
  Lines         120      165      +45
  Branches        0        9       +9
==========================================
+ Hits          120      164      +44
- Misses          0        1       +1

Thanks @ivanmisuno!
I've merged those changes into master with one small change - I added back eventWithName() method to ensure backwards-compatibility.
I'm thinking about cutting a new release with those - 3.1.0, is there anything you would like to add before I make a release?

@DenHeadless Cool, thanks! I'm using Transporter in two projects, and was really missing the ability to toggle the state machine between states with the same event, so I think it makes a perfect release.
I've expanded the Transporter in several other ways in my projects, but that's definitely not ready to be exposed publicly) So thanks again for maintaining a great project, hope will have a chance to contribute more.)

Great! I published 3.1.0 release with those changes 🚀


TypeError: Do not know how to serialize a BigInt

using deno, deno-postgres and neontech database;
when i trying to c.json(result)  where "result" is the rows from database

Hi @aniruddhnishad !
c.json() simply uses JSON.stringify(), so whether the "result" is parsed or not depends on JSON.stringify(). Therefore, I recommend trying it out with JSON.stringify() directly before using c.json() in your Hono application.


docker service update --rollback option not available in Docker 1.12.6

Is the docker service update option --rollback not available in Docker 1.12.6? The --rollback does not get applied. CoreOS stable has Docker <IP_ADDRESS> pre-installed.

No, --rollback was added in Docker 1.13.0.

Thanks @aaronlehmann. Was --force also added in 1.13, for the docker service update command?

Yes.

@aaronlehmann.
Thanks. The issue may be closed.

Tested docker service update options --rollback and --force on Docker 1.13 and these are supported on Docker 1.13.


Component PLM-EPD-INS needs to be replaced with PLM-CLOUD-INS

Issue description
Hello Build WZ Team,
when searching for the component PLM-EPD-INS at https://me.sap.com/mynotes?tab=Search I get the hint:

So it seems that a replacement with PLM-CLOUD-INS is needed.
Best regards,
Gregor
Feedback Type (Optional)
outdated information
Page Title on SAP Help Portal (prefilled)
Getting Support
Page URL on SAP Help Portal (prefilled)
https://help.sap.com/docs/build-work-zone-advanced-edition/sap-build-work-zone-advanced-edition/getting-support?locale=en-US

Thank you, Gregor.
This will be fixed in the next release.


Management roles suggestions

As suggested in yesterday's meeting, some extra functionality that could be added to management roles:

Give an explanation of what permissions each role means in the management page where roles can be set
Show a list of all admins and the role that they have within the management pages (I think this is important)
Easier way of searching for users when adding new admins
We could do with clarification on whether, if you are an admin, you are able to carry out your admin role (e.g. change a project's properties) when viewing your own workspace or only when viewing the management pages. Ideally, you would only be able to change the settings of a project that someone has shared with you as editor when in management pages and not when viewing the list of projects in your own workspace.

@torinfo I used to be able to test the management page when using xampp. However, if I go to localhost/xertetoolkits/management.php now it just says 'site administration' with a save button and a button to take me back to the workspace. I don't have any authentication set up (guest). What's the best way to test any of this now? Thanks

@FayCross Oops. I'll have a look at this a.s.a.p.

The previous commit fixes the issue that you cannot login as admin if the authentication is Guest (or Saml2, OAuth, etc that does not display the login page). It does not address (yet) the other issues suggested by Fay.


fix(config): type issue of pool and poolMatchGlobs in defineConfig

Description

Fixed a type issue in the config file, where pool and poolMatchGlob should use Exclude<T> to exclude type "browser" instead of Omit<T>.

Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[ ] It's really useful if your PR references an issue where it is discussed ahead of time. If the feature is substantial or introduces breaking changes without a discussion, PR might be closed.
[ ] Ideally, include a test that fails without this PR but passes with it.
[x] Please, don't make changes to pnpm-lock.yaml unless you introduce a new test example.

Tests

[x] Run the tests with pnpm test:ci.

Documentation

[ ] If you introduce new functionality, document it. You can run documentation with pnpm run docs command.

Changesets

[x] Changes in changelog are generated from PR name. Please, make sure that it explains your changes in an understandable manner. Please, prefix changeset messages with feat:, fix:, perf:, docs:, or chore:.

I wonder why isBrowserEnabled even checks for it. 🤔

It was allowed at the time the function was written. Now the check can be removed.

Great finding @InfiniteXyy - I think I've mixed the Omit and Exclude couple of times before.
The CI error on packages/vitest/src/node/config.ts seems valid. poolMatchGlobs does not allow browser so I wonder why isBrowserEnabled even checks for it. 🤔

Thank you! I removed this check, but I'm not sure if it will affect some exsiting codebase.


Seperate the docs from the README, and make them a jekyll page.

This is a pull request to seperate the docs from the README.md and put them nicely organized in the docs/ folder.
Please note, you we'll want to enable GitHub Pages/Jekyll in order to access the web-docs, from there just go into the the landing site of the repo, scroll down, and click the link, to see your new web based documentaion, that is easy to modify/change!
Thanks! 😄

any update on this?

closing this due to inactivity.