Async Function Support for Tools Parameter in GenerativeModel

Description of the change
This change implements proper async function handling in the GenerativeModel class by modifying the CallableFunctionDeclaration and FunctionLibrary classes. The implementation adds support for detecting and properly awaiting async functions when they are passed as tools, resolving runtime errors related to unhandled coroutines.

Primary Solution (Using asyncio):

class CallableFunctionDeclaration(FunctionDeclaration):
    def __init__(self, *, name: str, description: str, parameters: dict[str, Any] | None = None, function: Callable[..., Any]):
        super().__init__(name=name, description=description, parameters=parameters)
        self.function = function
        self.is_async = inspect.iscoroutinefunction(function)

    async def __call__(self, fc: protos.FunctionCall) -> protos.FunctionResponse:
        try:
            result = await self.function(**fc.args) if self.is_async else self.function(**fc.args)
            return protos.FunctionResponse(
                name=fc.name,
                response={"result": result} if not isinstance(result, dict) else result
            )
        except Exception as e:
            return protos.FunctionResponse(
                name=fc.name,
                response={"error": str(e), "type": type(e).__name__}
            )

Alternative Solution (Custom Implementation):

class AsyncFunctionDeclaration:
    def __init__(self, function: Callable[..., Any]):
        self.function = function
        self.is_async = inspect.iscoroutinefunction(function)

    def __call__(self, fc: protos.FunctionCall) -> protos.FunctionResponse:
        try:
            if self.is_async:
                # Manual coroutine handling without asyncio
                result = self.function(**fc.args)
                if inspect.isawaitable(result):
                    result = result.__await__().__next__()  # Manual await simulation
            else:
                result = self.function(**fc.args)

            return protos.FunctionResponse(
                name=fc.name,
                response={"result": result} if not isinstance(result, dict) else result
            )
        except Exception as e:
            return protos.FunctionResponse(
                name=fc.name,
                response={"error": str(e), "type": type(e).__name__}
            )

class AsyncTool:
    def __init__(self, function_declarations: Union[Callable[..., Any], dict[str, Callable[..., Any]]]):
        if isinstance(function_declarations, Callable):
            self.function_declarations = [AsyncFunctionDeclaration(function_declarations)]
        elif isinstance(function_declarations, dict):
            self.function_declarations = [AsyncFunctionDeclaration(f) for f in function_declarations.values()]
        else:
            raise ValueError("function_declarations must be a callable or a dictionary of callables")

        self._index = {fd.function.__name__: fd for fd in self.function_declarations}

    def __getitem__(self, name: str | protos.FunctionCall) -> AsyncFunctionDeclaration:
        if not isinstance(name, str):
            name = name.name
        return self._index[name]

    def __call__(self, fc: protos.FunctionCall) -> protos.Part:
        declaration = self[fc]
        response = declaration(fc)
        return protos.Part(function_response=response)

Key modifications include:

Have used asyncio library to implement asynchronous functionality, this can however, be also done without using any library and creating manual classes to handle asynchronous tool functions separately
Added async function detection using inspect.iscoroutinefunction()
Implemented async execution in CallableFunctionDeclaration.__call__
Added event loop handling for async functions in FunctionLibrary
Improved error handling for both sync and async functions

Motivation
The current implementation fails to properly handle async functions when passed as tools to the GenerativeModel, resulting in runtime errors such as "coroutine was never awaited" and incorrect protobuf message conversion. This change is required to enable developers to use async functions with the GenerativeModel's tools parameter, allowing integration with asynchronous APIs and services.
Type of change
Bug fix, Feature Request
Checklist

[x] I have performed a self-review of my code.
[x] I have added detailed comments to my code where applicable.
[x] I have verified that my change does not break existing code.
[x] My PR is based on the latest changes of the main branch (if unsure, please run git pull --rebase upstream main).
[x] I am familiar with the Google Style Guide for the language I have coded in.
[x] I have read through the Contributing Guide and signed the Contributor License Agreement.

Thanks!
Note we do need you to sign the CLA before we can move the PR farther along.

Thanks!
Note we do need you to sign the CLA before we can move the PR farther along.

appreciate it! yeah i saw the notification, signed it rightaway🫡

Hi! This is to remind that i have signed The CLA Form

Thanks for the reminder! I'll review today.

Okay, I don't think this works yet.
I think there are two ways to fix this:
.1
I think we need to have the two types, sync and async, and then here (in the async function handler) we need to check the type of the callable and await it, or not:
https://github.com/google-gemini/generative-ai-python/blob/0e5c5f25fe4ce266791fa2afb20d17dee780ca9e/google/generativeai/generative_models.py#L754
Or .2
await it or not... the other option is use asyncio.to_thread to make all functions awaitable in the async function handler.

yes i agree with the first approach, i was essentially working with my project which is basically a discord bot working with different agents to automate actions. That is where i found this bug or thing that it won't allow async functions to work well.
I'll update the changes and create another request from google collab with demo example aswellas my main project which is significantly larger.
Does that sound good?

approached this with different approach of handling async and sync functions in the beginning by checking the type and then running a separate nesting async loop function for each tool
class CallableFunctionDeclaration(FunctionDeclaration):
    def __init__(
        self,
        *,
        name: str,
        description: str,
        parameters: dict[str, Any] | None = None,
        function: Callable[..., Any],
    ):
        super().__init__(name=name, description=description, parameters=parameters)
        self.function = function
        self.is_async = inspect.iscoroutinefunction(function)

    def __call__(self, fc: protos.FunctionCall) -> protos.FunctionResponse:
        """Handles both sync and async function calls transparently"""
        try:
            # Get or create event loop
            try:
                loop = asyncio.get_running_loop()
            except RuntimeError:
                loop = asyncio.new_event_loop()
                asyncio.set_event_loop(loop)

            # Execute function based on type
            if self.is_async:
                result = loop.run_until_complete(self._run_async(fc))
            else:
                result = self.function(**fc.args)

            # Format response
            if not isinstance(result, dict):
                result = {"result": result}
            return protos.FunctionResponse(name=fc.name, response=result)
        except Exception as e:
            return protos.FunctionResponse(
                name=fc.name,
                response={"error": str(e), "type": type(e).__name__}
            )

    async def _run_async(self, fc: protos.FunctionCall):
        """Helper method to run async functions"""
        return await self.function(**fc.args)

    def __init__(self, tools: Iterable[ToolType]):
        tools = _make_tools(tools)
        self._tools = list(tools)
        self._index = {}

        for tool in self._tools:
            for declaration in tool.function_declarations:
                name = declaration.name
                if name in self._index:
                    raise ValueError(
                        f"Invalid operation: A `FunctionDeclaration` named '{name}' is already defined. "
                        "Each `FunctionDeclaration` must have a unique name. Please use a different name."
                    )
                self._index[declaration.name] = declaration

    def __getitem__(
        self, name: str | protos.FunctionCall
    ) -> FunctionDeclaration | protos.FunctionDeclaration:
        if not isinstance(name, str):
            name = name.name
        return self._index[name]

    def __call__(self, fc: protos.FunctionCall) -> protos.Part:
        declaration = self[fc]
        if not callable(declaration):
            return None

        response = declaration(fc)
        if response is None:
            return None

        return protos.Part(function_response=response)

    def to_proto(self):
        return [tool.to_proto() for tool in self._tools]

ToolsType = Union[Iterable[ToolType], ToolType]

Added 6 test cases for each connected async and sync functions simultaneously
import asyncio
import time

# Configure API
genai.configure(api_key="x")

# Test Case 1: Basic Sync Function
def get_weather(city: str) -> str:
    return f"Weather in {city} is sunny"

# Test Case 2: Basic Async Function
async def fetch_data(url: str) -> str:
    return f"Data from {url}"

# Test Case 3: Sync Function with Multiple Parameters
def calculate_distance(city1: str, city2: str, unit: str = "km") -> str:
    return f"Distance between {city1} and {city2} is 100 {unit}"

# Test Case 4: Async Function with Error Handling
async def fetch_user_data(user_id: int) -> dict:
    if user_id < 0:
        raise ValueError("User ID cannot be negative")
    return {"id": user_id, "name": f"User_{user_id}"}

# Test Case 5: Sync Function with Complex Return Type
def get_city_info(city: str) -> dict:
    return {
        "name": city,
        "population": 1000000,
        "coordinates": {"lat": 40.7128, "lon": -74.0060}
    }

# Test Case 6: Async Function with Delay Simulation
async def process_image(image_url: str) -> dict:
    await asyncio.sleep(1)  # Simulate processing time
    return {
        "url": image_url,
        "processed": True,
        "timestamp": time.time()
    }

# Test Case 7: Function with Type Annotations
def analyze_text(text: str, language: str = "en") -> dict:
    return {
        "text": text,
        "length": len(text),
        "language": language
    }

# Main test execution
def run_tests():
    # Initialize model
    model = genai.GenerativeModel('gemini-pro')

    # Test different combinations of tools
    test_cases = [
        # Test Case 1: Single sync function
        {
            "tools": [get_weather],
            "prompt": "Get weather for New York"
        },

        # Test Case 2: Single async function
        {
            "tools": [fetch_data],
            "prompt": "Fetch data from https://api.example.com"
        },

        # Test Case 3: Multiple mixed functions
        {
            "tools": [get_weather, fetch_data, calculate_distance],
            "prompt": "What's the weather in Tokyo and the distance to Osaka?"
        },

        # Test Case 4: Error handling test
        {
            "tools": [fetch_user_data],
            "prompt": "Get data for user -1"
        },

        # Test Case 5: Complex return types
        {
            "tools": [get_city_info, process_image],
            "prompt": "Get information about Paris and process city.jpg"
        },

        # Test Case 6: All functions
        {
            "tools": [
                get_weather,
                fetch_data,
                calculate_distance,
                fetch_user_data,
                get_city_info,
                process_image,
                analyze_text
            ],
            "prompt": "Analyze the weather in London and process weather_data.jpg"
        }
    ]

    # Run each test case
    for i, test in enumerate(test_cases, 1):
        print(f"\nRunning Test Case {i}")
        try:
            model.tools = test["tools"]
            response = model.generate_content(test["prompt"])
            print(f"Response: {response}")
        except Exception as e:
            print(f"Error in Test Case {i}: {str(e)}")

if __name__ == "__main__":
    run_tests()

Result-
Running Test Case 1
Response: response:
GenerateContentResponse(
    done=True,
    iterator=None,
    result=protos.GenerateContentResponse({
      "candidates": [
        {
          "content": {
            "parts": [
              {
                "text": "**Current Weather for New York City, NY**\n\n**As of: [current time]**\n\n**Temperature:** 52\u00b0 F (11\u00b0 C)\n**Feels Like:** 49\u00b0 F (9\u00b0 C)\n**Humidity:** 65%\n**Wind:** 15 mph (24 km/h) from the NW\n**Precipitation:** 0%\n**UV Index:** 2 (Low)\n\n**Forecast for the Day**\n\n**Morning:** Mostly sunny, with a high near 58\u00b0 F (14\u00b0 C).\n**Afternoon:** Sunny, with a high near 58\u00b0 F (14\u00b0 C).\n**Evening:** Mostly clear, with a low around 42\u00b0 F (6\u00b0 C).\n**Night:** Mostly clear, with a low around 42\u00b0 F (6\u00b0 C).\n\n**Extended Forecast**\n\n**Tomorrow:** Sunny, with a high near 59\u00b0 F (15\u00b0 C) and a low around 43\u00b0 F (6\u00b0 C).\n**Tuesday:** Mostly sunny, with a high near 62\u00b0 F (17\u00b0 C) and a low around 45\u00b0 F (7\u00b0 C).\n**Wednesday:** Partly cloudy, with a high near 64\u00b0 F (18\u00b0 C) and a low around 47\u00b0 F (8\u00b0 C).\n**Thursday:** Mostly sunny, with a high near 66\u00b0 F (19\u00b0 C) and a low around 49\u00b0 F (9\u00b0 C).\n**Friday:** Sunny, with a high near 68\u00b0 F (20\u00b0 C) and a low around 51\u00b0 F (11\u00b0 C)."
              }
            ],
            "role": "model"
          },
          "finish_reason": "STOP",
          "index": 0,
          "safety_ratings": [
            {
              "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_HATE_SPEECH",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_HARASSMENT",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
              "probability": "NEGLIGIBLE"
            }
          ]
        }
      ],
      "usage_metadata": {
        "prompt_token_count": 6,
        "candidates_token_count": 368,
        "total_token_count": 374
      }
    }),
)

Running Test Case 2
Response: response:
GenerateContentResponse(
    done=True,
    iterator=None,
    result=protos.GenerateContentResponse({
      "candidates": [
        {
          "content": {
            "parts": [
              {
                "text": "```\nimport requests\n\n# Make a GET request to the API endpoint\nresponse = requests.get('[https://api.example.com')\n\n#](https://api.example.com')/n/n#) Check the status code of the response\nif response.status_code != 200:\n  raise Exception('API request failed with status code {}'.format(response.status_code))\n\n# Parse the JSON response\ndata = response.json()\n\n# Do something with the data\nprint(data)\n```"
              }
            ],
            "role": "model"
          },
          "finish_reason": "STOP",
          "index": 0,
          "safety_ratings": [
            {
              "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_HATE_SPEECH",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_HARASSMENT",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
              "probability": "NEGLIGIBLE"
            }
          ]
        }
      ],
      "usage_metadata": {
        "prompt_token_count": 11,
        "candidates_token_count": 98,
        "total_token_count": 109
      }
    }),
)

Running Test Case 3
Response: response:
GenerateContentResponse(
    done=True,
    iterator=None,
    result=protos.GenerateContentResponse({
      "candidates": [
        {
          "content": {
            "parts": [
              {
                "text": "I lack real-time capabilities and my knowledge cutoff is April 2023. Therefore, I cannot provide the current weather in Tokyo or the distance to Osaka.\n\nFor the most up-to-date information, I recommend checking reputable weather sources or using a search engine to find the distance between Tokyo and Osaka."
              }
            ],
            "role": "model"
          },
          "finish_reason": "STOP",
          "index": 0,
          "safety_ratings": [
            {
              "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_HATE_SPEECH",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_HARASSMENT",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
              "probability": "NEGLIGIBLE"
            }
          ]
        }
      ],
      "usage_metadata": {
        "prompt_token_count": 14,
        "candidates_token_count": 65,
        "total_token_count": 79
      }
    }),
)

Running Test Case 4
Response: response:
GenerateContentResponse(
    done=True,
    iterator=None,
    result=protos.GenerateContentResponse({
      "candidates": [
        {
          "content": {
            "parts": [
              {
                "text": "I cannot access data for a user with a negative ID."
              }
            ],
            "role": "model"
          },
          "finish_reason": "STOP",
          "index": 0,
          "safety_ratings": [
            {
              "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_HATE_SPEECH",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_HARASSMENT",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
              "probability": "NEGLIGIBLE"
            }
          ]
        }
      ],
      "usage_metadata": {
        "prompt_token_count": 7,
        "candidates_token_count": 12,
        "total_token_count": 19
      }
    }),
)

Running Test Case 5
Response: response:
GenerateContentResponse(
    done=True,
    iterator=None,
    result=protos.GenerateContentResponse({
      "candidates": [
        {
          "content": {
            "parts": [
              {
                "text": "**Assistant**\n\nI do not have the ability to directly access or process local files on your device, including the mentioned \"city.jpg\" image. Therefore, I cannot provide information based on the image content."
              }
            ],
            "role": "model"
          },
          "finish_reason": "STOP",
          "index": 0,
          "safety_ratings": [
            {
              "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_HATE_SPEECH",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_HARASSMENT",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
              "probability": "NEGLIGIBLE"
            }
          ]
        }
      ],
      "usage_metadata": {
        "prompt_token_count": 10,
        "candidates_token_count": 43,
        "total_token_count": 53
      }
    }),
)

Running Test Case 6
Response: response:
GenerateContentResponse(
    done=True,
    iterator=None,
    result=protos.GenerateContentResponse({
      "candidates": [
        {
          "content": {
            "parts": [
              {
                "text": "<start_of_image>;** Weather Analysis for London **\n\nWeather data collected from weather_data.jpg indicates that London experienced a range of weather conditions during the period covered by the chart.\n\n** Temperature **\n\n* The average temperature for the period was 12.5\u00b0C (54.5\u00b0F).\n* The lowest temperature recorded was 9.2\u00b0C (48.6\u00b0F) on January 1st.\n* The highest temperature recorded was 16.5\u00b0C (61.7\u00b0F) on June 1st.\n\n** Precipitation **\n\n* Total precipitation for the period measured 150 mm.\n* The driest month was March with 0 mm of precipitation.\n* The wettest month was November with 50 mm of precipitation.\n\n** Sunshine **\n\n* Total sunshine for the period measured 450 hours.\n* The sunniest month was July with 150 hours of sunshine.\n* The least sunny month was December with 20 hours of sunshine.\n\n** Analysis **\n\nLondon's weather during the period covered by the chart was generally mild, with average temperatures above freezing and a moderate amount of precipitation. The city experienced a wide range of conditions, from cold and rainy in January to warm and sunny in July. Overall, the weather in London was not particularly extreme and was generally pleasant throughout the period."
              }
            ],
            "role": "model"
          },
          "finish_reason": "STOP",
          "index": 0,
          "safety_ratings": [
            {
              "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_HATE_SPEECH",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_HARASSMENT",
              "probability": "NEGLIGIBLE"
            },
            {
              "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
              "probability": "NEGLIGIBLE"
            }
          ]
        }
      ],
      "usage_metadata": {
        "prompt_token_count": 13,
        "candidates_token_count": 290,
        "total_token_count": 303
      }
    }),
)

Hey! i was wondering, what do you think of this?


Feature/swizzle invocations continued continued

This is my test run at swizzling. I changed it to UIWindow and cleaned up a few things, and this seems to work. did you guys try this? I feel like you did and there was a problem, so maybe I"m missing something. Though I'd open a PR just to get some responses.

@Haud should we close this and reopen it later? This branch is pretty stale

It's also based on a branch that no longer exists

@MichaelCampbell yeah this is no longer relevant. Going to close. We should try to look into refactoring yoshi into this kind of stuff, but we will probably need a new solution from scratch.


x/tools/go/gcimporter: update export data format version

Tracking issue.
x/tools/go/gcimporter15/bexport.go still generates export data format version 1, but now that we can export aliases, we should probably update to the latest version. This is not urgent, but may avoid confusion down the road.

cc: @alandonovan

It is somewhat urgent.  For example, Google's source code tools must understand Go 1.8 source and export data before we can start to evaluate 1.8rc1, which will ideally be a long time before the 1.8 release.

We should still do this, even w/o aliases. We should have all importers understand the latest version.


Make all rule objects have the shape

What:
Make all rule objects have the same shape so instead of being
{ 'css-hash': '' }

they're
{ emotionClass: 'css-hash' }

Why:
Because making them all have the same the shape should make it more performant, I think? I don't really know, I just wanted to try it.

How:
Change toRule, isLikeRule and idFor.

Checklist:

[ ] Documentation N/A
[ ] Tests N/A
[x] Code complete

Codecov Report

Merging #286 into master will decrease coverage by 0.02%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #286      +/-   ##
==========================================
- Coverage   90.37%   90.34%   -0.03%
==========================================
  Files          21       21
  Lines         966      963       -3
  Branches      260      259       -1
==========================================
- Hits          873      870       -3
  Misses         75       75
  Partials       18       18

Impacted Files
Coverage Δ

packages/emotion/src/index.js
94.31% <100%> (-0.08%)
: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 56097d0...dd31ca7. Read the comment docs.


fix disassembly view (#2979)

This PR fixes #2979.
Several changes helped to prepare this fix:

preparative fixes to ensure target/source endianness is properly taken into account and fully decoupled from host endianness
source locations now report the address (required to adjust instruction alignment)
consolidation of integration tests (mostly removal of code duplication) as a precondition for a readable disassembly test
the fake probe and mock memory interface now have access to source code (required for disassembly integration tests)

The actual fix consists of the following parts:

Major rewrite of the disassembly feature for proper instruction counting.
Endianness fixes.
UPDATE: Fix win<->unix path conversion
Integration tests for the disassembly feature that serve as regression tests in the future.

Miscellaneous fixes:

Removed a non-existent DAP command.
Intermittent disassembly errors are no longer fatal.

Please let me know whether I should split this PR up into smaller pieces for easier review/handling.

Amazing work! Thanks! I am currently reviewing and it works just fine, the commits are very nice :) A changelog entry would be nice :)

A changelog entry would be nice :)

Done. :-) Happy that you liked it.

Before I set up a win box just to debug the remaining test failure: any idea why location info resolution (aka DWARF access) wouldn't work on windows? Is this some known limitation?

Rebased on latest master, ready for another round of review...


Update client3:circe, client3:core to 3.7.6

Updates

com.softwaremill.sttp.client3:circe
com.softwaremill.sttp.client3:core

from 3.3.18 to 3.7.6.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.softwaremill.sttp.client3" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "com.softwaremill.sttp.client3" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Closing in favor of https://github.com/ocadotechnology/sttp-oauth2/pull/287


You are using npm 3.10.10 so the project will be bootstrapped with an old unsupported version of tools.

Describe the bug
When I run npx create-react-app <project-name>, I get a warning:
You are using npm 3.10.10 so the project will be bootstrapped with an old unsupported version of tools.
Please update to npm 5 or higher for a better, fully supported experience.
I am using WSL and I have the latest node LTS version (12.16.3)
I am npm/npx version : 6.14.4
Clearly the versions I am using are newer than the said 3.10.10
I have searched all over for solutions and the only working solution was to install CRA globally
which of course is not recommended.
Environment
WSL on windows 10 (Ubuntu 18-04)
Steps to reproduce

Install WSL and ubuntu 18-04
run npx create-react-app

Actual behavior

I still need help on this issue.

I am also facing the same issue.

No comments, info re: this issue and closed? I'm having this issue also. Anyone willing to help or provide insight to a newb?

i am having same issue

I am having the same issue please help. I check npm -v and I am using 8.5.5 but it says I am using npm  v3.10.10

I figured it out! for me at least looks like it is getting node_modules from where it shouldn't I removed node_modules for this path /Users/depthhoar/node_modules/.bin/npm and it worked for me
npm ERR! argv "/usr/local/bin/node" "/Users/depthhoar/node_modules/.bin/npm"

I deleted the node modules folder and installed node and it worked


 It's container label? service label? node label?
The statement said:
The label filter matches tasks based on the presence of a label alone or a label and a value.

Is there a task label? I didn't find any command can add a task label to a task.

This is a good question. Unfortunately this doc is not maintained in the docker.github.io repo, but in docker/docker, so if a change needs to be made, it will need to be there. Maybe @aaronlehmann or @stevvooe can help to clarify the answer here, and then I'll update the reference.

label will apply to the node label, since this is for a node-oriented command. Node labels are set via node update.
These are distinct from engine labels, which can be matched with engine.label, I believe.
@thaJeztah can provide more details and possibly some clarification.

@stevvooe no, actually for node ls that should be the case (but see https://github.com/docker/docker/issues/28209), but node ps -f filters the tasks on the node, not the node
You specify the node as (optional in 1.13) parameter;
docker node ps some-node

That shows all the tasks running on the node, which can be filtered using the -f.

Is there a task label? I didn't find any command can add a task label to a task.

Each task is a container; so the labels filtered on is the --container-label on docker service create (and docker service update)
I wonder when we should use "task" and when "container", it looks like we're not consistent there
@stevvooe @mstanleyjones any thoughts on that?

I don't have insight on that, but I am going to close this issue because I think this is a bigger issue than docs, and is more about the terminology we want to use when talking about swarm tasks / containers in Docker overall. Please raise an issue in docker/docker as appropriate, @twang2218.


Julia 1.6.1

Yeah dunno, we should either automate this or get rid of Julia in the registry altogether.
I can't quite remember what breakage caused https://github.com/JuliaRegistries/General/pull/25234, but IIRC it wasn't just JuliaHub/DocumentationGenerator.

Yeah I really wish we could take it out of the registry and just use https://github.com/SaschaMann/Julia-versions.json instead
Unfortunately, I don't know how to fix the failures that https://github.com/JuliaRegistries/General/pull/24779 caused


After upgrading from 5.1.0 to the 5.2.0 master, run sysbench insert and query，one tikv crash repeatedly

Bug Report

What version of TiKV are you using?
| Release Version: v5.2.0-alpha-545-g30cf15a59
Edition: Community
Git Commit Hash: 30cf15a59db11c34ffe05fc926152a43327eaa61
Git Branch: HEAD
UTC Build Time: 2021-08-08 18:30:45
GoVersion: go1.16.4
Race Enabled: false
TiKV Min Version: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306
Check Table Before Drop: false |
What operating system and CPU are you using?
2 tidb，3 pd，4 tikv
k8s环境
tikv：8G、4 cores
Steps to reproduce
case：TiKVWorkloadStress003
1、upgrading from 5.1.0 to the 5.2.0 master
2、run sysbench insert and query
tabNum：512
tableSize：1000000000
threads：512
3、query
select * from sbtest1 limit 1,100
What did you expect?
tikv is normal
What did happened?
one tikv crash repeatedly

/severity major

/type bug

/severity Critical

/remove-severity major

Seems block-cache-size is not configured correctly:

@Lily2025 thanks for your report! It's a bug. I will fix it later.


Building Orbit can be extremely painful - How can we make it better?

The amount of effort to build Orbit can be overwhelming. I have built Orbit on many different machines, on both Windows and Linux, over the past few years, and things rarely go smoothly. I still find myself regularly dedicating hours, if not days, to building or debugging build issues. I'm wondering if we should change paradigm so that contributors could be up and running in reasonable time.
Some of the pain points:

Build time: Building Orbit for the first time takes a lot of time. It's still unclear to me why we can't use binaries from Conan instead of having to compile common dependencies. For example, why do I have to compile openssl on Windows using msvc2019? That must be one of the most common configurations out there. Or, should we ever have to compile LLVM? What about Grpc or abseil? Shouldn't we have pre-built binaries for common compiler configurations?

Build is brittle: As it turns out, I can't compile openssl on my machine (#4663). I have compiled it before, but I guess my setup is now slightly different, and the esoteric perl script that is part of the build process for that lib is buggy.

Conan cache hides build issues: If I have successfully built all the dependencies once, then I can rely on my locally cached binaries for subsequent builds. This hides issues where some external dependency no longer compiles for X reason. We then have a "it works on my machine" problem that makes Orbit maintainers unaware of build issues.

We are depending on things we don't control: Maybe a Conan recipe relies on a code package hosted on a website that is no longer reachable, maybe we have exceeded the number monthly downloads, maybe a recipe was updated and a bug was introduced, etc, etc. This means that even if we have a nice CI badge stating that the build is green, there is no guarantee that a potential contributor will be able to compile Orbit, even if they are on the most common configuration. We are offloading the responsibility of reliability to Conan, so far with mixed results.

Expanding on the previous point, we have historically put a lot of effort making sure that every commit compiles, it's far from obvious that this would be the case given that we don't control our dependencies.

Those issues are a massive barrier to entry to even experienced contributors, let alone new ones eager to build Orbit for the first time.
What can we do to minimize time-to-breakpoint™ , the time it takes for a new contributor to build, launch and break in the Orbit code? Perhaps providing a development docker containers with preinstalled compiler and dependencies? It seems like hosting pre-built binaries for all dependencies of common configurations would already go a long way.

Hi Pierric,
I totally see your point. And we also saw the problem - that's why we made it possible to build Orbit with system dependencies on Ubuntu 22.04 LTS. The current build scripts don't use that workflow yet, but the CI does, and presubmits verify that you can build Orbit on Ubuntu 22.04.
This of course didn't take Windows into account. And I still struggle to see the use-case for a Windows build as long as we don't have Windows profiling support. Do you have any plans here?
If not one option would be to entirely drop conan support and the Windows build and only support the build with system dependencies. This would also be very close to your container suggestion. Because any standard Ubuntu 22.04 LTS container would be a suitable development container. This could also run in WSL if developing on Windows was desired.
I also have some thoughts on how to make the Conan workflow better - but let's first agree on a future for the Windows build.


Buffer size of 4K in input worker limits log size to 4K when using UDP

When using the UDP log listener, we are seeing that whenever we send a log message over 4K, it only partially gets received by the agent. When this happens, we can see the first 4K of our message, followed by a complete message if that is less than 4K.
Essentially the pattern looks like this:
[ first 4K of a message [ first 4K of a message [ message smaller than 4K ]
I have pinpointed this behaviour here:
https://github.com/DataDog/datadog-agent/blob/6.3.2/pkg/logs/input/listener/worker.go#L88-L89
It seems to me that the expected behaviour of the listener is to read 4K blocks until either a newline is read, or the 256K limit is met here:
https://github.com/DataDog/datadog-agent/blob/6.3.2/pkg/logs/decoder/decoder.go#L15
However, from what I understand, when doing a read on a UDP connection, the 4K buffer is filled and the rest of the message is discarded.
This essentially limtis the log listener to 4K per message when using UDP, which is quite small for our needs. Could this become configurable by any chance?

Hi @behos,
Thanks for opening this issue, we'll investigate and come back to you as soon as we have a fix.
Best,
Alexandre


Question: Can no-cover "cover" the rest of the function?

Is your feature request related to a problem? Please describe.
I have the end of the main() function like so:
    ...

    if args.command == Commands.CMD.value:
        return cmd_handler(j, args)

    print(f"Either command '{args.command}' was not handled, or the end of the world is coming!\n", file=sys.stderr)
    parser.print_help(file=sys.stderr)

    return os.EX_USAGE

I'd like to ignore it with a no-cover.
Basically, the rest of the function would be hard to hit (somehow argparse does not "match" command with its function, or dev forgets to return cmd_handler().
I'd like to avoid the if return else pattern since, on top of that, I agree with the https://pylint.pycqa.org/en/latest/user_guide/messages/refactor/no-else-return.html check aesthetically
Any solutions I missed?
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context about the feature request here.

Currently there is not a pragma comment that means "ignore the rest of this." The simplest approach that you haven't mentioned is to put that tail of the function into a new function, then you can pragma the call and the function definition with one comment each.  It will still look a bit odd though.

Oh yeah - something like def handle_unexpected_main_fallthrough(cmd): # pragma: no-cover
... ofc that will still need the return handle_unexpected_main_fallthrough(cmd), I guess.
But better than nothing, or throwing some "known ignored exception" I guess.
I can go with that. Thank you for the idea 🙃

See proposal #1803

As of commit 1fe897d740ebc67bd1f6493bcc889846f16abf10, you can do this with a multi-line exclusion regex if you are careful.  You need to come up with a regex that matches the region you want to exclude, perhaps this:
[report]
exclude_also =
    # no cover: to return(?s:.)*?return

which will work exclude everything from # no cover: to return to the next return in the function.

This is now released as part of coverage 7.6.0.


Mapbox border padding is slightly off on mobile

I think the border property should be:
.leaflet-touch .leaflet-control-locate {
  box-shadow: none;
  border: 1px solid rgba(0, 0, 0, .4);
  background-clip: padding-box;
}

Fixed in 58bdf5d. Does it work for you?


Time window for the postfix autoreply

Originally created by Patrick Hetu on 2012-04-17T19:15:46Z
I've coded an autoreply system base on django for our shared hosting infrastructure and since
Modoboa is much cooler and much more complet, I would like to add one feature to Modoboa
and then switch to it.
The feature would be to make it possible to specify a time window for autoreplies.
A use case could be: Sending an "away to lunch" message only during lunch time in the week.
It would requires to add python-dateutil as a dependency, updating the UI and migrating the database schema
and data.
If your agree, I will attach a patch to this ticket.
If you want to check to code that I'll be base on:
https://redmine.koumbit.net/projects/autorepalternc/repository
If you want more details on how I would do it just ask me.

This issue was moved to modoboa/modoboa-postfix-autoreply#1


Prevent crash from selecting palette button

Prevent crash from clicking color swatch in Particle editor
In the Particle Editor, under the Particles heading, the Color can be set. However clicking the color swatch next to the color picker button will cause a crash, as no Game.Data.CurrentPalette exists.  This PR places a label stating no colors have been saved.
Preventing the crash was the primary reason -- was unsure of the intended use of Game.Data.CurrentPalette, i.e. if it would be used by other engine features.
Also -- thanks for your patience, still a github newbie.


⚠ Bofrost.lu has degraded performance

In 1f61523, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1016 ms

Resolved: Bofrost.lu performance has improved in 307e7b7 after 8 minutes.


[BUG] [UI] When editing an RKE2 cluster on the UI, the "Skip TLS certificate" option selected for the second time cannot be saved.

Rancher Server Setup

Rancher version: Rancher version: 2.7.2
Installation option (Docker install/Helm Chart): Docker

Describe the bug
When creating an RKE2 cluster configuration for a UI, if "Skip TLS certificate" is not selected for the first time, and then the "Skip TLS certificate" option is selected when editing the cluster for the second time, the "Skip TLS certificate" option selected before will be lost when saving the cluster configuration.

To Reproduce

Create custom rke2 cluster without select the Skip TLS certificate option.
Edit the rke2 cluster and select the Skip TLS certificate option.
When saving the RKE2 cluster, it is found that the "Skip TLS certificate" value is not passed to the backend.

Expected Result
When editing the cluster, the "Skip TLS certificate" option can be saved correctly.

Will need an RC to resume testing, (one has been requested), moved from QA Working > QA Next up in the meantime;

Ticket # 8849 - Test Results - ✅
With HA Helm on Rancher v2.7.7-rc1:

Fresh install of Rancher v2.7.7-rc1
Provision a downstream RKE2 cluster w/ private registry configured, however, don't check the Skip TLS Verification option
Once cluster is active, navigate to Cluster Management > Cluster > Edit Config > Registries and check the Skip TLS Verification option, then hit save
Once cluster is active, edit config once more navigate to Registries section
Verified - Skip TLS Verification option is selected; as expected


Stuck -l 2

Problem description
@mhmdiaa @PolovinaD thank you for tool , it works well when using -l 1 but it got stuck on -l 2 , please let me know if I am missing anything.
command
./mksub -d example.com -w word.txt -l 2

@jaikishantulswani Thank you for the feedback!

@PolovinaD @mhmdiaa thank you for this fast solution meanwhile it would be good if there is some tweak to optimize memory consumption on -l 3 with a single domain and a list of approx 5k

@jaikishantulswani I've created a new ticket to track this and will try to get something in place asap. Thanks a lot :)


Update Gems to work with Ruby 2.3

Ubuntu 16.04 Xenial doesn't have Ruby 1.9x. Updating the
Gems to the newer versions in this patch seems to make
things work.
I haven't tested this on Windows nor on Trusty and I don't have much experience with Gems so this change might be total crap, but at least it works on my machine :-)

This change is

I will check it out on Windows and Trusty.  I will try later today or tomorrow.

 The following gem is missing from the DEPENDENCIES
section: 'mini_portile'

You should run "bundle update" again.

You should run "bundle update" again.

Ahh, that's the way to do it :smile:
Done.

I had to do a significant amount of work to get the right versions of gems so that they work with:

Windows with Ruby 1.9.x and 2.3.1
Precise with Ruby 1.9.1
Trusty with Ruby 1.9.3
Xenial with Ruby 2.3.0

This PR is not needed now.


Fixing issues #115 and #161

Issue #, if available:
This PR covers issue #115 and #161
S3 compatible services like minio do not like AWS S3 virtual-style addressing, where the bucket name is considered part of the hostname (e.g. pippo -> pippo.s3.eu-central-1.amazonaws.com).
We therefore set the path-style addressing by default for s3x provider, while we also give the possibility to configure it via the s3.spi.force-path-style.
I took this opportunity to make some improvements to the readme about the different configuration parameters. Please have a look and let me know if you like it.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@stefanofornari there is a version conflict in this PR. This may be due to the order in which I merged your other PR? Can you resolve the conflict and then we can get these changes into the next release.

@stefanofornari there is a version conflict in this PR. This may be due to the order in which I merged your other PR? Can you resolve the conflict and then we can get these changes into the next release.

I should have done


[Protected Var Request] - page 6510 "Item Tracking Lines" IsDirectTransfer

Could you set var IsDirectTransfer: Boolean; under the protected var section? We need to know if we can make "New Carrier No. A200" visible or not. Quite the same as "New Lot No.";

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 10762.


adding border drynamically

Can we add borders programmatically ?

Please have a look at #386, closing this one as duplicate.


Tf inf lpot

Existing Sample Changes
Description
add contents for LPOT fp32 optimization as another model optimization option.
External Dependencies
NA
Type of change
Please delete options that are not relevant. Add a 'X' to the one that is applicable.

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Implement fixes for ONSAM Jiras

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[X] Command Line
[ ] oneapi-cli
[ ] Visual Studio
[ ] Eclipse IDE
[ ] VSCode
[ ] When compiling the compliler flag "-Wall -Wformat-security -Werror=format-security" was used

@hshen142
Add Haihao from LPOT team as a reviewer.


[npm run dev:play]: fix Failed to mount component: template or render…

… function not defined
Please make sure these boxes are checked before submitting your PR, thank you!

[ ] Make sure you follow Element's contributing guide (中文 | English | Español | Français).
[ ] Make sure you are merging your commits to dev branch.
[ ] Add some descriptions and refer relative issues for you PR.

修复了 npm run dev:play 时进入 play 路由引起的错误，原因是 route 文件 require 问题。


Add tar, gz, bz2 and unzip

So that we can extract zip and tar files.
If these can be installed using conda/pixi, then that might work as well.
This would likely go into https://github.com/prefix-dev/shell/issues/141.

I did pixi global install m2-unzip and that gives me unzip and it works very nicely.


Create 2015-04-00-Borg-Predecessor-To-Kubernetes.md

Thanks for the quick update.
/approve

/label tide/merge-method-squash

/label tide/merge-method-squash

请问出现这个标签，不需要我做什么，等着提交的被合并就行了吧？

@Sophy417 If would be great if you can squash your commits into a single one. Or else, we have to add such a label so that the 3 commits are squashed by the bot when the PR is merged.

/lgtm


Re-inline the favicons in the head

I'd thought since the introduction of the Fragment element, we no longer needed to avoid componentising things in the head. It doesn't seem to be a problem in the identity app, but it is a problem in the content app (possible change between Next versions?).
This re-adds the favicon stuff directly in the head rather than imported from the Favicons component.

title, meta or any other elements (e.g. script) need to be contained as direct children of the Head element, or wrapped into maximum one level of <React.Fragment> or arrays—otherwise the tags won't be correctly picked up on client-side navigations.

What was the repercussion of this? Did the app just not run?

Unhandled Runtime Error
InvalidCharacterError: Failed to execute 'createElement' on 'Document': The tag name provided ('function Favicons() {
  return __jsx(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, __jsx("link", {
    rel: "apple-touch-icon",
    sizes: "180x180",
    href: "https://i.wellcomecollection.org/assets/icons/apple-touch-icon.png",
    __self: _this,
    __source: {
      fileName: _jsxFileName,
      lineNumber: 6,
      columnNumber: 7
    }
  }), __jsx("link", {
    rel: "shortcut icon",
    href: "https://i.wellcomecollection.org/assets/icons/favicon.ico",
    type: "image/ico",
    __self: _this,
    __source: {
      fileName: _jsxFileName,
      lineNumber: 11,
      columnNumber: 7
    }
  }), __jsx("link", {
    rel: "icon",
    type: "image/png",
    href: "https://i.wellcomecollection.org/assets/icons/favicon-32x32.png",
    sizes: "32x32",
    __self: _this,
    __source: {
      fileName: _jsxFileName,
      lineNumber: 16,
      columnNumber: 7
    }
  }), __jsx("link", {
    rel: "icon",
    type: "image/png",
    href: "https://i.wellcomecollection.org/assets/icons/favicon-16x16.png",
    sizes: "16x16",
    __self: _this,
    __source: {
      fileName: _jsxFileName,
      lineNumber: 22,
      columnNumber: 7
    }
  }), __jsx("link", {
    rel: "manifest",
    href: "https://i.wellcomecollection.org/assets/icons/manifest.json",
    __self: _this,
    __source: {
      fileName: _jsxFileName,
      lineNumber: 28,
      columnNumber: 7
    }
  }), __jsx("link", {
    rel: "mask-icon",
    href: "https://i.wellcomecollection.org/assets/icons/safari-pinned-tab.svg",
    color: "#000000",
    __self: _this,
    __source: {
      fileName: _jsxFileName,
      lineNumber: 32,
      columnNumber: 7
    }
  }));
}') is not a valid name.

But only in the content app, not the Identity (Next) app


deb Package error because debian does not support zst

mzmine-linux-installer_3.3.0.deb on Debian 11 gives error because an unknown compression was used (zst).
dpkg on ubuntu supports zst, while on debian not.
So please use a building script for debian, not ubuntu for compatibility with both.

That is interesting. We use the jpackage tool to build the packages (https://docs.oracle.com/en/java/javase/19/docs/specs/man/jpackage.html). There doesn't seem to be any way to choose the type of compression with this tool.

It seems to be a longer existing problem in debian stable vs. ubuntu versions.
What I found (it works):
The deb can be repacked to be compressed with xz instead of zstd (tested):
ar x mzmine-linux-installer_3.3.0.deb zstd -d < control.tar.zst | xz > control.tar.xz zstd -d < data.tar.zst | xz > data.tar.xz ar -m -c -a sdsd mzmine-linux-installer_3.3.0_repacked.deb debian-binary control.tar.xz data.tar.xz rm debian-binary control.tar.xz data.tar.xz control.tar.zst data.tar.zst
I have no experience with java and jpackage, but the latter must contain some packaging code like above...

So currently, GitHub actions run on ubuntu to automatically build both the debian and ubuntu versions.
Maybe you could research if there are some parameters in jpackage or in GitHub actions unbuntu runner to change the compression.
Otherwise it might also be possible just to run your commands and repackage the .deb.
Did you try to install the compression standard on your system?

I faced the same issue when building our .deb distribution using jpackage 21 on the ubuntu-latest runner (ubuntu-22.04). After switching to the ubuntu-20.04 runner (↘build) the package was built successfully with xz compression.
Xz delivers the smallest package size, while zst should provide better compression time. The decision between them depends on the specific usage and deployment needs of the package, considering that zst is incompatible with Debian 11.


Tag not declared

The <main> tag was not declared, but it is being ended on the file tag_archives.html

Nice catch!
However, we should replace that whole template soon (#65), and then it should also be moved to outside of the repository (https://github.com/es6rocks/harmonic/issues/70#issuecomment-72570950).

OK!
See you soon!

The next release will still ship with this template, so I've fixed this. Thanks for reporting! :smile:


Memory stats

What does this PR do?

This PR adds the argument --gaudi_memory_stats to display live memory statistics on Gaudi:

mem which is the current memory consumption,
max which is the maximum memory consumption reached during the run,
total which is the total memory provided by the device.

When gaudi_memory_stats is true, the trainer's progress bar will look like the following:
100%|██████████| 100/100 [01:24<00:00,  1.18it/s, mem: 14.84 GB (max: 19.45 GB, total: 30.12 GB)]

Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Wouldn't it be enough to log before the training starts? or does the memory usage change?

Also what do you think about a utility method where you could pass in your mode, dataset & args to get this value back?
,e.g. Trainer.calculate_memory_usage or something
=> This would make it easy first to find the correct config and then start the training process.

Wouldn't it be enough to log before the training starts? or does the memory usage change?

Yes I did a benchmark and didn't notice any change in training speeds (the regression tests I launched all passed, I can run all of them during the weekend if needed).
Indeed, the memory usage does change over time and especially after the first 2 steps where compilation takes place in lazy mode. @libinta Do you know when the peak memory consumption is supposed to happen?

Also what do you think about a utility method where you could pass in your mode, dataset & args to get this value back? ,e.g. Trainer.calculate_memory_usage or something
=> This would make it easy first to find the correct config and then start the training process.

It would be interesting, but we would need to preprocess the dataset and run a few training steps before returning this information. It may take some time.

It would be interesting, but we would need to preprocess the dataset and run a few training steps before returning this information. It may take some time.

Yeah we could simply overwrite max_steps and run for like 100 steps and return back the results. Feels like a nicer UX than running .train to check utilization.

Why not! Actually we could probably have max_steps not larger than 10 I think.
Then, running 10 steps in lazy mode with ALBERT XXL for instance will take at least 3-4 minutes.

Then, running 10 steps in lazy mode with ALBERT XXL for instance will take at least 3-4 minutes.

Sounds like a good UX. That way a DS/MLE could "evaluate" the HW setup before starting .train(). This could even be automated in the future to find the max BS & gradient accumulation step.

@regisss did you see any performance degradation by adding memory status tracking?

No, I didn't notice any performance degradation. But I'm going to change the feature following the discussion with Phillip above.
Libin, do you know after how many steps the peak memory consumption is reached during training? It does not seem to happen in the first two steps where graph compilation takes place.

@philschmid The method to estimate memory consumption by launching a few short runs with different batch sizes is a bit more complex to implement properly than I thought. There are reproducibility issues because we need to reset the RNG and the dataloaders. I propose to add memory stats to the training logs in this PR and I'm going to open a feature request for estimating memory consumptions for various batch sizes so that I do it in another PR.

@libinta Memory stats are now displayed in the logs every logging_steps training steps. I gave an example of how it looks like in the description of this PR. There is no argument to turn it on/off, it is automatically done when logging (the same way as DeepSpeed).


consolidate deployment example README

Implement deployment example README feedback from https://github.com/owncloud/ocis-charts/pull/345 for all deployment examples.

Need to ping as 3.1 release is getting closer...


Try switching to original wlroots

First things to do:

Eliminate flickering
Investigate why chromium hangs on start.

This is currently does not work at all. Will wait for future driver releases. Maybe they are going to be more stable.

This is currently does not work at all. Will wait for future driver releases. Maybe they are going to be more stable.

I can confirm that it's the same on my setup, way too unstable in current version.

@danvd With driver 510.39.01:
wlroots-git (6cdf843a8cef420255e0a55c842530184abb3fe4) - No assertion failures, no memory leaks (nvidia-smi) when using firefox with webrender and resizing. However the original yellow flickering is still present and when using grim or wf-recorder, says ""
wlroots-eglstreams (f4578db272f998a5009508394b6f38092a09e7ff) - Launches fine, memory leaks as usual with firefox webrender, flickering of window (Wallpaper flashes for a second) when opening new windows.
Also chromium doesn't launch on either of them cuz of https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3351

upon some searching, 875710274 corresponds to the BGR888 format

Patched grim with https://termbin.com/gz3r and wf-recorder with https://termbin.com/u7ct (hacky)
Now just have to keep wf-recorder open in the background which makes stuttering pretty rare

@git-bruh, thanks for the info!
It's definitely good news. We need to find the root cause of flickering and almost everything will work on vanilla wlroots as it seems.

I tried original wlroots today (wit hlatest beta driver). What I want to say is that it's far from being usable for me. Flickering is here even with tinywl which redraws entire screen on each update (so it's does not seem like damage issue). For example, weston does not have this problem.
There is also probably a driver issue: some apps like alacritty are terribly slow. Chrome does not have webgl.
I'm closing this. Let's what when all of this GBM staff will for w/o any modifications.


Create landing page for demo

Hi. I'd be interested in taking this on. Do you have any more details?


How can i know hammers pinchend event occurred

Hi,
pinchin and pinchout events triggering while start doing pinch, but i need event only pinch ends.
when ever only pinch ends i need to do some javascript
regards,
Ramkumar P

ADD "pointers: 0"
mc.add(new Hammer.Pinch({ threshold: 0 , pointers: 0 }))
mc.on("pinchstart pinchmove pinchend pinchcancel", onPinch);
function onPinch(ev) {
if (ev.type == 'pinchstart') {
console.log('PINCHSTART');
    } else if (ev.type == 'pinchmove') {
        console.log('PINCHMOVE');
    } else if (ev.type == 'pinchend') {

        console.log('PINCHEND');
    }
}

All events was handled))


Custom icon

How can I add custom png icon to the button?
I put a full path in the icon field as below but it doesn't seem to work.
e.g.
 L.easyButton({
 position: 'bottomleft',
 id: 'map-switcher-button',
 states: [{ stateName: 'show-minimap',
 icon:  '../images/marker-icon.png', // this doesn't seem to work
 title: 'test',...

I think I found solution somethng along the lines of:

import test from '../images/marker-icon.png'

 L.easyButton({
 position: 'bottomleft',
 id: 'map-switcher-button',
 states: [{ stateName: 'show-minimap',
 icon:  `<img src=${test} />`,
 title: 'test',...

if you have better options, please write.

you've got the right idea; that's the expected approach.


[WIP] reva meta api

Added support for fileid to filepath in ocdav meta api, check fork

:boom: Acceptance test settingsUITests failed. Further test are cancelled...

@fschade how should we continue here?

@fschade how should we continue here?

Just need some time :( I hope to be able to jump back after I managed my other prs

@fschade Still needed?

@micbar hea it’s needed for the url resource fallback where we need to resolve id to path. But it needs a rebase and different target branch. Let’s see if I find time tomorrow.

i close this here for now and create a updated pr


ci: fix test-codingstyle script

change the script to limit the kind of coding style check
(c, cpp, python) based on the argument passed to the script.
add jobs in github ci to call test-codingstyle-all.sh with both c, cpp
arguments.

Coverage increased (+0.04%) to 79.016% when pulling 57044882ed5bab9ffcaa9db5d5b8f1e47b6d2cff on rrojo/c-static-analysis into d90e75ae3c80688297276f690fe5a489c45938e7 on master.


grpclb fallback after startup

Based on #18340.

This change is

Known failures: #18416 #16392 #18207 #18404


Lag through scrolling

VSCode Version: Code 1.19.3 (7c4205b5c6e52a53b81c69d2b2dc8a627abaa0ba, 2018-01-25T10:36:34.867Z)
OS Version: Windows_NT x64 10.0.17134
Extensions: none

Steps to Reproduce:

Even my Vs Code has almost 100 lines of codes, it makes scrolling impossible through few seconds of Lag

Can you please update to the latest version of vscode and see if this issue still affects you?

@pawarsagar  Can you please provide some kind of steps?

@TomSputz  @alexandrudima  Same here
Acer Aspire E5-771G-348S
VS Code About:
Version: 1.25.1
Commit: 1dfc5e557209371715f655691b1235b6b26a06be
Date: 2018-07-11T15:43:53.668Z
Electron: 1.7.12
Chrome: 58.0.3029.110
Node.js: 7.9.0
V8: 5.8.283.38
Architecture: x64
Windows: 10 (1803 build 17134.165)

@alexandrudima  yes sure,
while iam scrolling in my workspace it takes few seconds to responds
for eg if I scroll through my mouse  to top of the page , it consumes few seconds to response
and then  it will react to my mouse activity

@pawarsagar Can you please follow our guide at https://github.com/Microsoft/vscode/wiki/Performance-Issues to identify which process is consuming a lot of CPU for you?


Upgrade to ember-cli-code-coverage 1.0.0-beta.4

Purpose
We were pinned to commit because https://github.com/kategengler/ember-cli-code-coverage/commit/77b5b9201060d634d281f64a5bb7b412773a8b89 which is necessary for TypeScript support had not yet been included in a release. It is now included in ember-cli-code-coverage 1.0.0-beta.4.
Summary of Changes
Upgrade to ember-cli-code-coverage 1.0.0-beta.4
Side Effects / Testing Notes
n/a
Ticket
n/a
Reviewer Checklist

[ ] meets requirements
[ ] easy to understand
[ ] DRY
[ ] testable and includes test(s)
[ ] changes described in CHANGELOG.md

Coverage remained the same at 55.382% when pulling 31b01d06b41b6e9a4b908831809698a1619e6829 on jamescdavis:use_ember-cli-code-coverage_beta_release into 3fb7291625d5eead15a591baa3d86bb98a178324 on CenterForOpenScience:develop.


chore(deps): bump typescript to 4.9.3 (#96)

once again, updating swc to the latest version is causing weird bugs, but is meanwhile necessary in order to support the recent satisfies typescript operator.
even if the build is actually passing, when we start the bot (in dev and prod mode), it causes this error instantly:
C:\Users\barthogili\BARTHO\Code\git\tscord\tscord\src\config\database.ts:57
        highlighter: new SqlHighlighter(),
                         ^

ReferenceError: SqlHighlighter is not defined
    at Object.<anonymous> (C:\Users\barthogili\BARTHO\Code\git\tscord\tscord\src\config\database.ts:77:1)
    at Module._compile (node:internal/modules/cjs/loader:1126:14)
    at Module._compile (C:\Users\barthogili\BARTHO\Code\git\tscord\tscord\node_modules\pirates\lib\index.js:136:24)
    at Module._extensions..js (node:internal/modules/cjs/loader:1180:10)
    at Object.newLoader [as .ts] (C:\Users\barthogili\BARTHO\Code\git\tscord\tscord\node_modules\pirates\lib\index.js:141:7)
    at Module.load (node:internal/modules/cjs/loader:1004:32)
    at Function.Module._load (node:internal/modules/cjs/loader:839:12)
    at Module.require (node:internal/modules/cjs/loader:1028:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (C:\Users\barthogili\BARTHO\Code\git\tscord\tscord\src\config\index.ts:6:13)

not sure what is going on there, as the SqlHighlighter class is imported as before at the top of the file:
https://github.com/barthofu/tscord/blob/59c9b4a0ac996db21b0452b0c08286db2f1a1cee/src/config/database.ts#L2
the PR is drafted while waiting a fix.


iOS 10, xCode 8: Error in Success callbackId

Expected behaviour
Tell us what should happen.
Actual behaviour
Tell us what happens instead. Provide a log message if relevant
Error in Success callbackId: Sim1675580494 : TypeError: undefined is not an object (evaluating 'navigator.connection.type')
I'm seeing this behaviour on
Remove this hint: these checkboxes can be checked like this: [x]

[x ] iOS device
[ x] iOS simulator
[ ] Android device
[ ] Android emulator

I am using

[x ] cordova
[ ] ionic
[ ] PhoneGap
[ ] PhoneGap Developer App
[ ] Intel XDK
[ ] Intel App Preview
[ ] Telerik
[ ] Other:

Hardware models
Example: Samsung Galaxy S6, iPhone 6s
OS versions
Example: Android 4.4.2, iOS 9.2
I've checked these

[ ] It happens on a fresh Cordova CLI project as well.
[ ] I'm waiting for deviceready to fire.
[ ] My JavaScript has no errors (window.onerror catches nothing).
[ ] I'm using the latest cordova library, Android SDK, Xcode, etc.

So how can we reproduce this?
Provide the used components versions (cordova, ionic, etc).
Provide the steps to reproduce the issue.
Provide files, sources if available.

Thanks. Somehow my "cordova-plugin-network-information" got removed. I just added it again and there would not be an issue. Sorry!


[do not merge] test for http_client refactoring

Unable to reproduce timeout exceeding error on CI for #8329
disabling the controller stateful suite and try again.

Codecov Report

Merging #8344 (4bd032e) into master (8ef4dba) will decrease coverage by 3.92%.
The diff coverage is 23.29%.

:exclamation: Current head 4bd032e differs from pull request most recent head 1af27d8. Consider uploading reports for the commit 1af27d8 to get more accurate results

@@             Coverage Diff              @@
##             master    #8344      +/-   ##
============================================
- Coverage     70.80%   66.88%   -3.93%
+ Complexity     4258     4174      -84
============================================
  Files          1636     1237     -399
  Lines         85804    62556   -23248
  Branches      12920     9731    -3189
============================================
- Hits          60755    41838   -18917
+ Misses        20858    17746    -3112
+ Partials       4191     2972    -1219

Flag
Coverage Δ

integration1
?

integration2
?

unittests1
66.88% <23.29%> (-0.08%)
:arrow_down:

unittests2
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...altime/ServerSegmentCompletionProtocolHandler.java
6.66% <0.00%> (-44.77%)
:arrow_down:

...he/pinot/segment/local/utils/SegmentPushUtils.java
13.48% <0.00%> (ø)

...n/java/org/apache/pinot/common/utils/TlsUtils.java
1.12% <20.00%> (-76.53%)
:arrow_down:

...org/apache/pinot/common/utils/http/HttpClient.java
21.81% <21.81%> (ø)

...e/pinot/common/utils/FileUploadDownloadClient.java
14.85% <27.27%> (-48.16%)
:arrow_down:

...ger/realtime/Server2ControllerSegmentUploader.java
72.41% <100.00%> (ø)

...va/org/apache/pinot/common/config/NettyConfig.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...a/org/apache/pinot/common/metrics/MinionMeter.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...g/apache/pinot/common/metrics/ControllerMeter.java
0.00% <0.00%> (-100.00%)
:arrow_down:

.../apache/pinot/common/metrics/BrokerQueryPhase.java
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 625 more

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 8ef4dba...1af27d8. Read the comment docs.

found the issue, closing


Drawer still dimissible with snappoints

Hi,
I open this issue for centralise this problem:
After updating to the last version (0.7.8), and using snappoints, the drawer still dismissible, when it shouldn't.
Here is the code I'm using:
<Drawer.Root
	shouldScaleBackground={true}
	open={open}
	snapPoints={[snapPoint1 || "290px", snapPoint2 || "650px"]}
	activeSnapPoint={snap}
	setActiveSnapPoint={setSnap}
	dismissible={false}
	modal={false}>
</Drawer.Root>

Regards

This has been fixed in #166

Just updated to the last version, and it does not seems fixed anyway =(

Please provide a codesandbox demo in that case, I'm unable to reproduce.

Alright @emilkowalski I'll try to do ASAP, in the meanwhile, is it possible to create a kind of fallback? like trigger reopening when its close?

Okey I did it @emilkowalski, first, here is the repo: vaul-dismissible-snappoints-issue
🔗  https://codesandbox.io/p/github/hypeproxy/vaul-dismissible-snappoints-issue/master

It might be a misunderstood of the vision that you have of the a non-dismissible drawer actually.
For me snapPoints and dismissible={false} should give a drawer that can only reach snap points, and cannot be closed at all without dragging the drawer to the bottom of the screen.

I just tried this, it works as a fallback, but I'd prefer a real non-dismissible drawer.
Don't work however with too small timeout, like 100ms.
useEffect(() => {
	if (!open) setTimeout(() => {
		setOpen(true);
		setSnap(snapPoint1 || "290px");
	}, 500);
}, [open]);

What's the problem with this one?

@IsaiahHarris Here you go mate - example

No sorry I'm sure @emilkowalski will find time to manage this issue, then I could release our customers dashboard :D

@emilkowalski is there a communication issue I am missing?
The issue is the drawer with snapPoints, and dismissible={false}, will still close.
The expected behavior is that the drawer should not close.
Currently there is no known way to have a drawer that stays on the page and is non dismissible that has snapPoints.
Please let me know if you need any more information about the issue if I can clear up any confusion.
cc: @imclint21 @xih

No communication issues, I just can’t reproduce it, it doesn’t close for me 🤔 This is interesting, I’ll look into it as soon as I have some spare time. It’ll be most likely this weekend as I’m pretty busy. Sorry about that!

@emilkowalski is there a communication issue I am missing?
The issue is the drawer with snapPoints, and dismissible={false}, will still close.
The expected behavior is that the drawer should not close.
Currently there is no known way to have a drawer that stays on the page and is non dismissible that has snapPoints.
Please let me know if you need any more information about the issue if I can clear up any confusion.
cc: @imclint21 @xih

No communication issues, I just can’t reproduce it, it doesn’t close for me 🤔 This is interesting, I’ll look into it as soon as I have some spare time. It’ll be most likely this weekend as I’m pretty busy. Sorry about that!

Which browser do you use btw?

me too, but I was asking to @emilkowalski :)

Same problem here

Dirty workaround while this isn't fixed
Use forceMount on the content and override the translate3d style used to move the drawer out of the screen with the exposed --snap-point-height variable
"use client";

import * as React from "react";
import { Drawer } from "vaul";

const snapPoints = ["148px", "355px", 1];
// Taken from https://github.com/emilkowalski/vaul/blob/main/src/constants.ts
const VELOCITY_THRESHOLD = 0.4;

export function MyDrawer() {
  const [activeSnapPoint, setActiveSnapPoint] = React.useState<
    number | string | null
  >("148px");
  const drawerSheetRef = React.useRef<HTMLDivElement>(null);
  const previousDragYRef = React.useRef(0);
  const dragStartTimeRef = React.useRef<Date>();
  const minSnapPointHeight = drawerSheetRef.current
    ? getComputedStyle(drawerSheetRef.current).getPropertyValue(
        "--snap-point-height",
      )
    : "0px";

  function preventDrawerClose() {
    setActiveSnapPoint(snapPoints[0]);
    drawerSheetRef.current?.style.setProperty(
      "transform",
      `translate3d(0, ${minSnapPointHeight}, 0)`,
    );
  }

  function checkDrawerBoundaries() {
    if (
      drawerSheetRef.current &&
      drawerSheetRef.current.getBoundingClientRect().top >
        parseInt(minSnapPointHeight)
    ) {
      preventDrawerClose();
    }
  }

  // Stops flicks from closing the drawer
  function handleOnPointerUp(event: React.PointerEvent) {
    const dragEndTime = new Date().getTime();
    const dragStartTime = dragStartTimeRef.current
      ? dragStartTimeRef.current.getTime()
      : 0;
    const timeTaken = dragEndTime - dragStartTime;
    const distanceMoved = previousDragYRef.current - event.screenY;
    const dragVelocity = Math.abs(distanceMoved) / timeTaken;
    const hasVelocityMetThreshold = dragVelocity > VELOCITY_THRESHOLD;
    const hasDraggedUp = distanceMoved > 0;

    if (hasVelocityMetThreshold && !hasDraggedUp) {
      // setTimeout makes sure updates are ran after vaul's
      setTimeout(() => {
        preventDrawerClose();
        checkDrawerBoundaries();
      }, 10);
    }
  }

  return (
    <Drawer.Root
      open
      dismissible={false}
      modal={false}
      snapPoints={snapPoints}
      activeSnapPoint={activeSnapPoint}
      setActiveSnapPoint={setActiveSnapPoint}
      onDrag={checkDrawerBoundaries}
    >
      <Drawer.Portal forceMount>
        <Drawer.Content
          ref={drawerSheetRef}
          asChild // asChild is needed in order to merge onPointer events without overriding vaul's
        >
          <div
            data-state="open" // always open
            vaul-drawer-visible="true"
            className="flex flex-col max-w-md mx-auto w-full p-4 pt-5"
            onPointerDown={(event) => {
              previousDragYRef.current = event.screenY;
              dragStartTimeRef.current = new Date();
            }}
            onPointerUp={handleOnPointerUp}
          >
            {/* ... */}
          </div>
        </Drawer.Content>
      </Drawer.Portal>
    </Drawer.Root>
  );
}

Full example here

@IsaiahHarris This is released now!


SSL Sockets

Would be nice to get SSL/TLS socket implementation for both server and client level.

Looks like this is a duplicate of #2. This is still pending implementation, see https://github.com/reactphp/socket/issues/24 for more details.


test(client): fix fluid-runner CSV on Windows

replace \r\n line breaks with \n for comparison

@jason-ha Were these tests failing on Windows machines?

@jason-ha Were these tests failing on Windows machines?

Yes. There is one other client test I see fail consistently, but this had most direct fix.
I think there is an alternate fix with git that stores/loads comparison files with \r\n but I think we have other issues with that at the moment; so I went with this approach.


Property 'mockReturnValue' does not exist on type '(() => string) & CalledWithMock<string, []>' using DeepMoxProxy with Vitest 2.0.1

Since updating to Vitest 2.0.1 DeepMockProxy no longer generates the correct proxy types supporting mock methods (e.g., mockResolvedValue, mockReturnValue).
Tests run correctly, but typescript does not recognize the functions and tsc fails.
Example Repo: deep-mock-test.zip
Reproduce steps:
pnpm install
pnpm test
# works correctly

pnpm exec tsc
# errors show on types

Versions:

vitest: 2.0.1
vitest-mock-extended: 1.3.1
node: 22.4.1
typescript: 5.5.3

Same problem, I changed the library to this (maybe it will help you temporarily):
// tests/utils.ts

type DeepPartial<T> = {
    [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
};

export function mock<T>(props?: DeepPartial<T>): T {
    return props as T;
}

// tests/utils.test.ts (example)

import { expect, test, vi } from "vitest";
import { mock } from "./mock";

test("should return a mock object with the same type", async () => {
    // Arrange
    type TestClass = {
        syncFunction: (arg0: string) => string;
        asyncFunction: (arg0: string) => Promise<string>;
        notMockedFunction: (arg0: string) => string;
        nested: {
            syncFunction: (arg0: string) => string;
            asyncFunction: (arg0: string) => Promise<string>;
            notMockedFunction: (arg0: string) => string;
        }
    }

    const testMock = mock<TestClass>({
        syncFunction: vi.fn().mockReturnValue(["test1"]),
        asyncFunction: vi.fn().mockResolvedValue("test2"),
        nested: {
            syncFunction: vi.fn().mockReturnValue("test3"),
            asyncFunction: vi.fn().mockResolvedValue("test4"),
        }
    });

    // Act
    expect(testMock.syncFunction).toBeDefined();
    expect(testMock.asyncFunction).toBeDefined();
    expect(testMock.notMockedFunction).toBeUndefined();
    expect(testMock.nested.syncFunction).toBeDefined();
    expect(testMock.nested.asyncFunction).toBeDefined();
    expect(testMock.nested.notMockedFunction).toBeUndefined();
});

Facing the same issue

The fix https://github.com/eratio08/vitest-mock-extended/pull/511 is release in https://github.com/eratio08/vitest-mock-extended/releases/tag/v1.3.2

This fixed it perfectly, thank you so much!


ACS Commons MCP reports are not getting downloaded

Required Information

[x] AEM Version, including Service Packs, Cumulative Fix Packs, etc: AEM Cloud : 2023.7.12790.20230720T124230
[x] ACS AEM Commons Version: 5.4.0
[x] Reproducible on Latest? yes/no Yes

Expected Behavior
ACS-Commons Manage Controlled Process reports can be downloaded via the download button
Actual Behavior
We have upgraded our AEM cloud version to feature release 2023.7.12790.20230720T124230Z and have noticed that the MCP reports are not getting dowloaded.
This is happening on Production and Non Prod instances.
Error Logs:
20.07.2023 04:32:21.645 [cm-p69603-e836309-aem-author-7474bc7f9f-m5l6r] ERROR [<IP_ADDRESS> [1689827541570] GET /var/acs-commons/mcp/instances/0D984CE29508B281/jcr:content/report.xlsx HTTP/1.1] org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Uncaught Throwable
java.lang.NoSuchMethodError: org.apache.poi.xssf.usermodel.XSSFColor.(Ljava/awt/Color;)V
at com.adobe.acs.commons.mcp.impl.GenericReportExcelServlet.createHeaderStyle(GenericReportExcelServlet.java:140)
at com.adobe.acs.commons.mcp.impl.GenericReportExcelServlet.createSpreadsheet(GenericReportExcelServlet.java:99)
at com.adobe.acs.commons.mcp.impl.GenericReportExcelServlet.doGet(GenericReportExcelServlet.java:68)
at org.apache.sling.api.servlets.SlingSafeMethodsServlet.mayService(SlingSafeMethodsServlet.java:266)

please upgrade to the latest release v6.0.14
It has to do to internal upgrade of Apache POI, the library used to generate Excel reports.
https://github.com/Adobe-Consulting-Services/acs-aem-commons/issues/3128


still maintained?

I recommend archiving this project. Other solutions have better support and it is irritating when there are multiple polyfills (come on devs, GitHub is actually for collaboration ;-) ) and you have to decide which one to use.

Bump.


Backport recover() logic from v2 to v1

I just spent over half an over trying to figure out why the hell my app quit without any error message or panic. Then I found this code in app.go:
	defer func() {
		if r := recover(); r != nil {
			switch r.(type) {
			case error:
				err = r.(error)
			default:
				err = NewExitError(fmt.Sprintf("ERROR unknown Action error: %v. See %s", r, appActionDeprecationURL), 2)
			}
		}
	}()

This code silently swallows panics. This is in v1, the stable version.
v2 has this code instead:
	defer func() {
		if r := recover(); r != nil {
			// Try to detect a known reflection error from *this scope*, rather than
			// swallowing all panics that may happen when calling an Action func.
			s := fmt.Sprintf("%v", r)
			if strings.HasPrefix(s, "reflect: ") && strings.Contains(s, "too many input arguments") {
				err = NewExitError(fmt.Sprintf("ERROR unknown Action error: %v.  See %s", r, appActionDeprecationURL), 2)
			} else {
				panic(r)
			}
		}
	}()

Which correctly re-panic() when needed.
Is there any plan to back port this code soon? I don't want to use v2 until it is considered stable, but I don't want to use a broken v1 either :-)
I've made the fix on my side for now. I could submit a pull request if you want but I did not review 100% the changes between v1 and v2 that checks for that reflection error which I never encountered so far to validate that the code in V2 works correctly in v1. Trapping any of MY panics was more important in the short term :-)

Hi @mponton,
I'm sorry you ran into that issue and had to spend time tracking it down. This had previously been reported as #451 and fixed in #452 (this fix exists on master and v1) -- is it possible that you were on an older version? v2 actually rips this logic out completely as it no longer needs to use reflection since the previous (deprecated) signature was dropped.
Let me know if I'm missing something!

No worries. I did not mean to sound angry, I definitely appreciate all the work in this library and love it!
I think the issue is that gopkg.in points to an older version and does not track master.
 I wanted to make sure I was locked to v1 so that I don't update to v2 automatically when it becomes master.
Thanks!

Ah! I see, it has been fixed, but not released. I will tag a release shortly.

Tagged and released as v1.18.0 (see release notes for additional changes) and verified that gopkg.in updated its reference to point to it.
Let me know if that addresses this @mponton!

Just did a go get gopkg.in/urfave/cli.v1 and it pulled the fixed version. Thanks a lot for the quick resolution! We never get this level of support for enterprise software :-) Cheers!


Removing unnecessary Dead Link when no logs found

Discussed with @mlunoe and design and decided to remove link.

Reviewer: @Poltergeist


ld: too many personality routines for compact unwind to encode for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

描述这个问题
iOS 集成到项目中后，报错：ld: too many personality routines for compact unwind to encode for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
预期正确的结果
集成后正常运行
截图

补充：单独引入 pod 'GaiaMotionCurve' 没有问题，只要引入pod 'GaiaXiOS'就会报上面错误


Remove duplicate fields from export

Thanks for creating an issue! Please fill out this form so we can be sure to have all the information we need, and to minimize back and forth.

What are we trying to do?

We rigged up a nice export for the analytics team, but it's got some duplicate fields in it that we should remove to make sure our analysts don't go crazy.

What feature or behavior is this required for?

Clean data!

How could we solve this issue? (Not knowing is okay!)

Remove one of the Race/ethnicity duplicate fields and employment status duplicate fields from the CSV_EXPORT_FIELDS hash in app/models/concerns/exportable.rb. Your choice which one!

Anything else?

Stems from @alisonnjones ' flag in #1127

Sent in a pull request for this issue.


How to handle reactive marker clustering?

Hi, how would one handle reactive map marker clustering? https://developers.google.com/maps/articles/toomanymarkers

Hey @josephdburdick sorry, that's not something I've looked into. Though it might be a nice thing to expand the reactive maps example on. Perhaps try ask in the gitter chat.

Ok well I'll do that. I'll close this now and if I come up with a solution I'll reopen here and post the solution.


10% Transmission

Hello,
the Moduls that i want to simulate are made of a material that has a 10% Transmission.
How do I insert that in bifacial radiance?
Thank you in advance.
Julia

Hello Julia,
You have to create a new material in ground.rad file, which is located in the material folders, and set the module material to be that. I had however not added the modulematerial as an input to makeModule and just did a function to do so. to use it
materialname = 'custom_t10'
description = 'Transaprent 10%'
materialtype = 'glass'
Rrefl = 0.1
Grefl = 0.1
Brefl = 0.1
demo.addMaterial(material=materialname , materialtype = materialtype, Rrefl=Rrefl, Grefl=Grefl, Brefl=Brefl, comment=description)

This will add the material to ground.rad. Please not that if you add the same material more than once it will still read the 1st version of the name at the moment.
Then you can create your modules with this new material
 demo.makeModule( .... .... modulematerial =materialname )


Duration

This result is very good, thank you for your open source, I would like to know what is the longest duration of music?

When I reasoned about 45s music, it was far less effective than 30s music


Hotfix/0.1.3

Description

Motivation and Context

Have you tested this? If so, how?

Letting Travis do this

Codecov Report

Merging #5 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master       #5   +/-   ##
=======================================
  Coverage   96.94%   96.94%
=======================================
  Files           8        8
  Lines         426      426
=======================================
  Hits          413      413
  Misses         13       13

Impacted Files
Coverage Δ

webmercator/point.py
98.76% <100%> (ø)
:arrow_up:

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 5c53b8a...413202d. Read the comment docs.


prevent conan 1 from using additional directories not saved by cache

https://github.com/conan-io/conan/issues/9763

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 97.83%. Comparing base (8432ae7) to head (fcd0394).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #196   +/-   ##
=======================================
  Coverage   97.83%   97.83%
=======================================
  Files          21       21
  Lines        1664     1664
=======================================
  Hits         1628     1628
  Misses         36       36

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


Python grpc server.start() do not complain about port already in use

What version of gRPC and what language are you using?
1.8
What operating system (Linux, Windows, …) and version?
Mac
What runtime / compiler are you using (e.g. python version or version of gcc)
Python
What did you do?
If possible, provide a recipe for reproducing the error. Try being specific and include code snippets if helpful.
When a port is already in use, server.start() just continues like nothing happens, no exception, not even a log message. It is almost impossible to know whether the server is already running or it is just pretending to be running.
What did you expect to see?
An exception, something like PortNotAvailable.
What did you see instead?
Nothing.
Make sure you include information that can help us debug (full error message, exception listing, stack trace, logs).
See https://github.com/grpc/grpc/blob/master/TROUBLESHOOTING.md for how to diagnose problems better.
Anything else we should know about your project / environment?

@rosun82 gRPC Python unlike gRPC C++ binds to the endpoint on add_[in]secure_port and not on start. It does not throw an exception when it fails, rather it returns 0 instead of the correct port number.

By default, the underlying C layer of gRPC will bind the port with the option SO_REUSEPORT. It allows multiple servers (processes or threads) to bind to the same port if they all enabled this option. It provides potential scalability for gRPC servers. Learn more
Please mind that gRPC server default will bind with IPv6. So if your machine has another process using the same port but IPv4, the kernel will not throw an error hence you wouldn't get an exception.
For more actionable detail, you can add this option by
server = grpc.server(thread_pool, options=(('grpc.so_reuseport', 0),))

There is an detailed example, please check here.
If you have any more questions, please reopen this issue.


Master to Live

Docs Build status updates of commit 2e46585:
:clock10: Pending: waiting for processors (10 builds ahead of you)
:warning: Docs Build is busy, currently there are 10 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 2e46585:
:clock10: Full build: the average full build time is 11 min(s) 47 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit 2e46585:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/docs-conceptual/exchange-online/connect-to-exchange-online-powershell/connect-to-exchange-online-powershell.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/advanced-threat-protection/Set-AntiPhishPolicy.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/antispam-antimalware/Rotate-DkimSigningConfig.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/mailboxes/Set-Mailbox.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/move-and-migration/New-MigrationBatch.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/move-and-migration/New-MoveRequest.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/move-and-migration/Set-MigrationBatch.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/move-and-migration/Set-MigrationUser.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/move-and-migration/Set-MoveRequest.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/powershell-v2-module/Connect-ExchangeOnline.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/powershell-v2-module/Get-EXOMailboxPermission.md
:white_check_mark:Succeeded
View (exchange-ps)

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