Java Client: MessageImpl - ensure that AutoConsumeSchema downloaded the schema before decoding the payload

Motivation
I saw this problem while developing integration tests for GenericObject + KeyValue with SEPARATED KeyValueEncoding.
Modifications
Before executing MessageImpl#getValue we are now ensuring that the Schema is really loaded when we call getSchemaInfo.
Initially I added an eager loading of the Schema in getSchemaInfo, but this resulted in lots of deadlocks because we are calling getSchemaInfo in many places.
The code also expects that AutoConsumeSchema returns getSchemaInfo == null in several places and we have to keep this behaviour.
Verifying this change
I added a new case to an existing integration test, the new case reproduced the problem.

@congbobo184 @codelipenghui now the patch is good to go. I added the test case

the integration test PulsarGenericObjectSinkTest#testGenericObjectSink failed frequently, could you take a look?

This is the fix for the problem
https://github.com/apache/pulsar/pull/10215
It is a problem related to the switch to LightProto

also @linlinnn I have pushed now a change that changes that test.
before this last commit we submitted all of the sinks at once, now we will run only one sink at a time, hoping that this will require less CI resources

@linlinnn  @codelipenghui  CI passed please take a look

@congbobo184 Could you please also help review this PR?

this patch also fixes a problem in the integration tests that made CI more flaky.
as soon as we commit this patch CI will be in better state
cc @congbobo184 @codelipenghui

thank you @congbobo184 @codelipenghui @lhotari for your review


Use Icon wallet address as key instead of ice wallet address

Sorry guys I mistakenly send PR here instead of local repo. Mention not ;)


Add theme_colour option to image block

⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠
What / Why

Adds the theme_colour option to the image blocks
So we can put the border top colours on the images

Screenshots?
Before

After

Thanks both 👍 -  @andysellick good shout, I'll mention theme_colour in the docs for the image block.


RBAC Principal Discovery Service Proposal

Title: RBAC Filter Principal Discovery Service
Description:

Describe the desired behavior, what scenario it enables and how it
would be used.

We deploy IP-based access control using RBAC filter, and write IP CIDR by hand directly.
But, we need any other solutions to switch the set of CIDRs dynamically. Instead of writing IP CIDR in the config, we intend to write any identifier in the config, and resolve the set of CIDRs from them dynamically.
I guess currently Envoy doesn't provide such a feature. Therefore we need to invent something new to achieve this requirement.
I came up with the following solutions, I'd like to discuss for the final decision:

Add new xDS service RBAC Principal Discovery Service (RPDS) to retrieve the set of IP CIDRs from DiscoveryResponse. This solution is not focusing on our requirements, and any other dynamic principal configuration as well.
Configuration based on DNS. It simply loads the  set of address periodically from DNS. and configure them. But, it couldn't support CIDR-based configuration, thus it doesn't meet with our requirements.

[optional Relevant Links:]

Any extra documentation required to understand the issue.

cc @yangminzhu @yanavlasov

Did you consider ECDS for RBAC?

@kyessenov Thank you. I have considered to use ECDS. But I'm not sure whether it meets with our use cases.
We deploy envoy for multi-tenants. It means that there are a lot of listeners (>500), and they owns different RBAC configuration.
Therefore we need something identification like route_config_name in RDS. But I couldn't catch ECDS owns such a mechanism to apply the each different config.
Actually, what we want to configure dynamically is just allowed_source_ip and denied_source_ip in RBAC principal as well.
So having dynamic configuration mechanism like CIDR Group Discovery Service meets 100% of our requirements.
In summary, our requirements are like the following:

We need identification mechanism for ECDS.
We need CIDR group dynamic configuration mechanism.

ECDS resources are named, so you could attach individual RBAC config to each listener. But you are right, this would potentially increase the size of configs since there is little reuse between RBAC configuration. Another approach would be to create a new (listener?) filter, configured via ECDS, that writes a filter state based on CIDR membership. Then in RBAC you use the filter state rather than the IP directly. Creating a new xDS is complex, so re-using ECDS with a new filter might be the easiest way to accomplish what you want.

@kyessenov Thank you. It sounds reasonable to achieve our requirements.
But I'm interested in whether my requirement is common for Envoy users or not. I guess many users might apply ACL policies by identifier, not the set of IP CIDRs directly, and the contents of the set is updated without changing of identifier.
In this case, we want to use something dynamic resolution mechanism of the IP CIDRs from identifier.
So, I thought we should have any unified way to achive this requirement. What do you think about it?
IMO if this requirement is not so common, I think we create new listener filter to update filter_state and do the action based on them in RBAC filter. But if it's common, I guess we should prepare something straightforward approach to achieve this (IP Group Discovery Service is just one of the many approaches)


Modify run results test to wait on timer instead of file write

Problem
This test previously waited on a file write which was not guaranteed to happen.
Solution
We now wait on a timer, which is not ideal, but should suffice for now.
Checklist

[x] I have read the contributing guide and understand what's expected of me
[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[x] This PR has no interface changes (e.g. macros, cli, logs, json artifacts, config files, adapter interface, etc) or this PR has already received feedback and approval from Product or DX

Now it looks like the first integration batch is hanging.


Add KTX 2.0 and Basis Universal Supercompressed Texture Codec example

Description
This PR adds a new sample that shows how to load and transcode Basis Universal Supercompressed Textures from KTX 2.0 zero files. The sample can transcode from ETCS1/UASTC to a list of native GPU formats supported by the GPU at runtime, so people can easily compare how quality differs between the input and target formats.
The sample also comes with an accompanying tutorial (see texture_compression_basisu_tutorial.md)
Important Note: The KTX2.0 textures required to run the sample have not yet been merged into the assets repo. In order to test this sample, this PR for the asset repo is required.
Tested on:

NVIDIA RTX 2060 (Windows 10)
Intel UHD 630 Graphics (Windows 10)
Qualcomm Adreno 618 (Android 11)

General Checklist:
Please ensure the following points are checked:

[x] My code follows the coding style
[x] I have reviewed file licenses
[x] I have updated the header Copyright to reflect the current year (CI build will fail if Copyright is out of date)
[x] I have commented any added functions (in line with Doxygen)
[x] I have commented any code that could be hard to understand
[x] My changes do not add any new compiler warnings
[x] My changes do not add any new validation layer errors or warnings
[x] I have used existing framework/helper functions where possible
[x] My changes build on Windows, Linux, macOS and Android. Otherwise I have documented any exceptions
[x] My changes do not add any regressions
[x] I have tested every sample to ensure everything runs correctly
[x] This PR describes the scope and expected impact of the changes I am making

Sample Checklist
If your PR contains a new or modified sample, these further checks must be carried out in addition to the General Checklist:

[x] I have tested the sample on at least one compliant Vulkan implementation
[x] If the sample is vendor-specific, I have tagged it appropriately
[x] I have stated on what implementation the sample has been tested so that others can test on different implementations and platforms
[x] Any dependent assets have been merged and published in downstream modules
[x] For new samples, I have added a paragraph with a summary to the appropriate chapter in the samples readme

Does this need a rebase?

Does this need a rebase?

Just did that.


Android 7

Does Zxing support Android 7? My previous application using Zxing 3.2.1 can't work on Android 7 phone.

I don't have an Android 7 phone available, so haven't tested this yet. Does it also fail in an emulator?

Your app crash in the moment to scan barcode or before?
In emulator I have tested and enable scan emulator, AVD (Android 7) with Camera Emulated. It's enough?

Works fine for me on 7.0. Do you have a stacktrace?

W/com.google.zxing.client.android.camera.open.OpenCameraInterface: No cameras!
E/CameraInstance: Failed to open camera
java.lang.RuntimeException: Failed to open camera
at com.journeyapps.barcodescanner.camera.CameraManager.open(CameraManager.java:125)
at com.journeyapps.barcodescanner.camera.CameraInstance$3.run(CameraInstance.java:165)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)

@lkwjohn Which device (model) is giving the issue?

works for me too

Closing this for now, please open another issue if you have more details.


feat(autoselect): Finds the first instance of compass and bundle in the ...

Hi,
Please could you close this pull request 234.
Now, I use 'which' module to detect the extension of executable.
I'm working on Windows ( I'm ashamed ;)) and some tests doesn't work.
   command: 'POSIXLY_CORRECT=1 grunt compass:compile'
    #unix like syntax, It isn't compatible with Windows (SET command: 'POSIXLY_CORRECT=1 grunt compass:compile')

But, my changes works on my platform.
I have decided to remove
if (process.platform === 'win32') {

and to trust 'which' module.
What do you think about this cleaning?
I can't test my changes on Mac OS or Linux. Have you any CI platform to validate them?

Tests are failing: https://travis-ci.org/gruntjs/grunt-contrib-compass/jobs/59198469

All is well — The Travis CI build passed :)

Merged, thank you!


[CLU] add support for summarization options

Add samples/tests for the following:

Optional utterance level timing to transcript conversation item: https://github.com/Azure/azure-rest-api-specs/blob/main/dev/cognitiveservices/data-plane/Language/analyzeconversations.json#L1841
Optional length control by count of sentences and optional phrases control: https://github.com/Azure/azure-rest-api-specs/blob/main/dev/cognitiveservices/data-plane/Language/analyzeconversations.json#L2131
Summary context: https://github.com/Azure/azure-rest-api-specs/blob/main/dev/cognitiveservices/data-plane/Language/analyzeconversations.json#L2206

Label prediction was below confidence level 0.6 for Model:ServiceLabels: 'Azure.Core:0.10465762,Docs:0.09239645,Cognitive Services:0.066544004'


Inconsistent reference to a site in legal pages

https://preview-dev.nugettest.org/policies/Terms
https://preview-dev.nugettest.org/policies/Privacy
Both are missing www, one uses http instead of https:

@jonwchu is planning to fix the text of these pages when he does a pass over them

Addressed by https://github.com/NuGet/NuGetGallery/pull/4339.


Cannot execute trans/job in the local Carte

This is a regression caused by the Spring Security login page c955d170c10c8b9efe48adff9a04b85ac13cbb93.

Resolved by 39aaffba437ecc9dfae466c00dffb82dfbbfc04a.


New premium time handling in TFS

TFS has changed how they handle premium time and now just use a timestamp in premium_ends_at instead of premdays and lastday in the database.
See this PR: https://github.com/otland/forgottenserver/pull/2813
I think it is too much work to keep compatibility with both old and new TFS, so I suggest we create a separate branch or tag a release for older TFS and let master keep compatibility with latest TFS.
Are there any other suggestions or opinions before I start working on this?

This should be fixed with 8efd60aeff1dbdc391f0f82de83e1a17c4a0977b. Please report any issues.
I decided to just update the master branch because TFS 1.3 has been going for so long and I don't know if castro still worked with the actual TFS 1.2 release anyway.


Game library should update automatically

If you buy a new game on the site the app should update it's cached list automatically (and possibly show a notification in the system tray #3)
There are a few ways to do this, some sort of persistent socket connection. Or polling. I think polling is fine because it requires no new services on the backend. It doesn't need to be real time, maybe once every minute?

A mock API would certainly make this easier for others to implement, while putting less strain on the servers. I would like to implement said API but I need to know what a 'Game' data structure comprises of first. I've come up with the following and would like some input on it before I carry on:
struct CoverImage : public QImage
{
    constexpr static const unsigned int WIDTH  = 315;
    constexpr static const unsigned int HEIGHT = 250;

    QString cacheFileLocation; // Stored in the local cache.
    QString remoteFileLocation; // Stored on itch.io
};

struct Price
{
    enum class Currency
    {
        USD,
        GBP,
        EUR,
    };

    unsigned int whole; // TODO Find a better name for this, i.e. the part before the decimal.
    unsigned int cents; // TODO Find a better name for this, i.e. the part after the decimal.
    Currency currency;
};

struct Game
{
    /*!
     *
     */
    enum class Status
    {
        Cancelled,
        OnHold,
        InDevelopment,
        Prototype,
        Released
    };
    /*!
     *
     */
    enum class Genre
    {
        Action,
        Platformer,
        Shooter,
        Adventure,
        RolePlaying,
        Simulation,
        Strategy,
        Puzzle,
        Sports,
        Other
    };
    /*!
     *
     */
    enum class Visibility
    {
        Private,
        PublicRestricted,
        Public
    };
    /*!
     *
     */
    enum class Platform
    {
        Windows,
        OSX,
        iOS,
        Linux,
        Android,
        Web
    };

    unsigned int   identifier;
    QString        title;
    QString        author;
    CoverImage     coverImage;
    QString        tagline; // a.k.a. shortText.
     Is it a genre?

    QDateTime      lastPlayed;

    QDateTime      publishDate;
    QDateTime      lastUpdated;

    bool           isDownloaded;
    bool           isPurchased;
    Price          minimumPrice;

    QString        itchURL;
    QString        googlePlayURL;
    QString        appleStoreURL;

    // Publisher specific properties that aren't exposed to other users.
    // Maybe these should go into another class, e.g. GameStats?
    Visibility     visibility;
    Price          earnings;
    unsigned int   viewCount;
    unsigned int   purchaseCount;
    unsigned int   downloadCount;

    static Game fromJson(const QJsonObject& object);
};


Fix/ios print digitup printer

When I used my digitup printer, I got error because this printer doesn't have characteristics with properties.write == true. But This device has properties.writeWithoutResponse == true. So my PR actually use properties.write to find the characteristics, if the result is empty then use properties.writeWithoutResponse == true to get the characteristics. And seem working on mine.

Hi, thank you for contributing to this repository! However, since I don't know what printer you're using with this library, could you please give me a link to it? Thanks!

here https://www.tokopedia.com/okayindonesia/printer-bluetooth-thermal-kasir-dt-58d-ok-58d-thermal-printer-dt-58d

When I used my digitup printer, I got error because this printer doesn't have characteristics with properties.write == true. But This device has properties.writeWithoutResponse == true. So my PR actually use properties.write to find the characteristics, if the result is empty then use properties.writeWithoutResponse == true to get the characteristics. And seem working on mine.

Hi, thanks for contribution. Helpful & working fine.


List of assets is not filled

So, after some investigation, this happens because sometimes proxy.tdex.network takes a long time to respond. And while it not responds, the list of tradable assets is not available.
I'm not sure on how to proceed with this:

Should we give it a default set of coins that could be changed after the response from tdex?
Or should we add a loading message while the tdex don't respond?

I'm voting for 2, what do you think?
cc @tiero @louisinger

We have the same issues on TDEX Mobile App indeed https://github.com/tdex-network/tdex-app/issues/457
I do think adding a modal that pop-up with a loader/spinner and a timeout (ie. 45-60secs?) to asks user to wait and eventually if ALL of them are not responding communicate it to the user.


Cop Idea: Detect redundant before(:each)

If a context only has one example, then the before setup can be inlined in the example, since there is no longer any need to extract out common behaviour.
Some people may object to this style though.

I like it. Definitely a style choice but I think it is reasonable to encourage


Add Nutanix Cloud Provider Manager project

Add Nutanix Cloud Provider Manager project
Description of changes:
The PR add Nutanix Cloud Provider Manager. It requires for bump up the version of Nutanix Cluster API Provider.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/test cloud-provider-nutanix-tooling-presubmit

/test cloud-provider-nutanix-tooling-presubmit

/lgtm
/approve
/woof


Plugins: Render text when no results are found

Option to set user defined text to render in plugin (ex: "Nothing found. Press Enter to run ")
Flag to set no results text for when used in dmenu mode

Potential conflict when websearch module is enabled.

This would only make sense if you only load a single plugin, or not?

Yeah, I never use walker with more than 1 module ;D

Okay, forget about cmd/script part

Can be configured via list.placeholder. CSS id is listplaceholder.

Cloned and built from https://github.com/abenz1267/walker/commit/1821feffbbd32a8f02682d27dad269dccf279382, also copied default config.
echo "a\nb\nc" | ./walker -d
It works until I smash my keyboard and then I'm getting this WARN see last two lines:
WARN Vulkan: Loader Message: setup_loader_term_phys_devs:  Failed to detect any valid GPUs in the current config priority=4 code_file=../gtk/gdk/gdkvulkancontext.c code_line=1642 code_func=gdk_vulkan_debug_report glib_domain=Gdk
WARN vkEnumeratePhysicalDevices(): Initialization of an object could not be completed for implementation-specific reasons. (VK_ERROR_INITIALIZATION_FAILED) (-3) priority=4 code_file=../gtk/gdk/gdkvulkancontextprivate.h code_line=68 code_func=gdk_vulkan_handle_result glib_domain=Gdk
libEGL warning: egl: failed to create dri2 screen
WARN Vulkan: Loader Message: setup_loader_term_phys_devs:  Failed to detect any valid GPUs in the current config priority=4 code_file=../gtk/gdk/gdkvulkancontext.c code_line=1642 code_func=gdk_vulkan_debug_report glib_domain=Gdk
WARN vkEnumeratePhysicalDevices(): Initialization of an object could not be completed for implementation-specific reasons. (VK_ERROR_INITIALIZATION_FAILED) (-3) priority=4 code_file=../gtk/gdk/gdkvulkancontextprivate.h code_line=68 code_func=gdk_vulkan_handle_result glib_domain=Gdk
WARN Trying to snapshot listplaceholder 0x22cce2f0 without a current allocation priority=4 code_file=../gtk/gtk/gtkwidget.c code_line=11941 code_func=gtk_widget_do_snapshot glib_domain=Gtk
WARN Trying to snapshot window 0x22cb9120 without a current allocation priority=4 code_file=../gtk/gtk/gtkwidget.c code_line=11941 code_func=gtk_widget_do_snapshot glib_domain=Gtk

walker freezes for couples seconds and then crashing

Can you built with latest and try again?

Fixed! I can live without flag to set "No results" text, so closing! Thank you for your work!


[FR] Integrate this into Obsidian Excalidraw Script Engine

I kind of use this for a purpose other than what is intended, i.e. I use it to manage frames to grow diagrams and add detail gradually, almost like a slideshow.
Nothing like this exists in Obsidian Excalidraw, where most of my work lives, so would love for this to be integrated natively. Not sure how much work that would require though.

What's Obsidian Excalidraw Script Engine? You can integrate excalidraw-claymate without touching Obsidian Excalidraw? Feel free to give it a shot.

Are you familiar with Obsidian? Excalidraw has a very popular integration with it. You can submit scripts to it I believe by doing a PR here
https://github.com/zsviczian/obsidian-excalidraw-plugin/tree/master/ea-scripts

Not at all.

OK is it fair to say that this is not something you will consider doing?


Throwing exception inside the Xunit.Runners.AssemblyRunner to report an error leaves the application/harness hung.

This issue should be investigated and the code refactor to handle exceptions properly.
e.g.)
runner.OnDiscoveryComplete = info =>
{
    lock (consoleLock)
    {
        var diff = info.TestCasesDiscovered - info.TestCasesToRun;
        if (diff < 0) // This should never happen.
        {
            // TODO: Add error handling. Throwing exception is not enough because we are waiting for the async runner to finish.
            // throw new InvalidOperationException("There are more benchmarks than facts.");
            WriteErrorLine("There are more benchmarks than facts.");
        }
        WriteInfoLine($"Running {info.TestCasesToRun} [Benchmark]s");
        if (diff != 0)
            WriteInfoLine($"Skipping {diff} Xunit [Fact]s because they are not [Benchmark]s");
    }
};

Closing prior to archive.

Closing prior to archive.


Is crewAI still unable to complete more complex blogs by executing tasks in order?

I recently wrote a demo to try and accomplish my blogging mission.
But it's clear that the proxies don't seem to be able to work well with each other.
In particular, I wrote a script to determine if the current text contains all the keywords, but every time it prompts the following error, indicating that two parameters could not be passed to the script:
pydantic.v1.error_wrappers.ValidationError: 1 validation error for Keyword CheckerSchemaSchema checkerSchemaSchema   field required (type=value_error.missing)
Here is my demo code:
from crewai import Agent, Task, Crew, Process
from langchain.agents import Tool
from langchain_community.tools import google_serper, tool
from serpapi.google_search import GoogleSearch
from langchain_openai import ChatOpenAI as OpenAI
from langchain_community.llms import ollama
import os

blog_title = "What is BPA free plastic?"
target_word_count = 1000
max_leading_paragraph_word_count = 80
max_snippet_answer_word_count = 50
max_summary_word_count = 50
target_audience = "b2b water bottle buyers"
os.environ["OPENAI_API_KEY"] = "xxx"
# ollama_llm = ollama(model="mistral")

# Define the custom tools
def retrieve_serp_data(query: str) -> dict:
    """
    Returns the serp data for the given query.
    """
    params = {
        "api_key": "xxx",
        "engine": "google",
        "q": query,
        "location": "Austin, Texas, United States",
        "google_domain": "google.com",
        "gl": "us",
        "hl": "en"
    }

    search = GoogleSearch(params)
    results = search.get_dict()

    # Extracting the titles from the organic results
    titles = [item['title'] for item in results.get('organic_results', [])]

    # Extracting questions and snippets from the People Also Ask section
    people_also_ask = [{'question': item.get('question'), 'snippet': item.get('snippet')}
                       for item in results.get('related_questions', [])]

    # Extracting related keywords
    related_keywords = [item['query'] for item in results.get('related_searches', [])]

    serp_data_json = {
        "titles": titles,
        "people_also_ask": people_also_ask,
        "related_keywords": related_keywords
    }

    return serp_data_json

def word_count(query: str) -> int:
    """
    Returns the word count of the given query.
    """
    # Splitting the query into words based on spaces
    words = query.split()

    # Counting the number of words
    count = len(words)

    return count

def check_keywords(article: str, keywords: list) -> list:
    """
    Checks if all keywords are present in the article.
    Returns a list of missing keywords.
    """
    missing_keywords = [keyword for keyword in keywords if keyword not in article]
    return missing_keywords

# Initialize the tools
# os.environ["SERPER_API_KEY"] = "Your Key"

class CustomTools():
    @tool("Word Count Checker")
    def word_count(query: str) -> int:
        """
        Returns the word count of the given query.
        """
        # Splitting the query into words based on spaces
        words = query.split()

        # Counting the number of words
        count = len(words)

        return count

    @tool("Keyword Checker")
    def check_keywords(article: str, keywords: list) -> list:
        """
        Checks if all keywords are present in the article.
        Returns a list of missing keywords.
        This function accepts 2 must-have parameters: article and keywords.
        article: The text you want to check.
        keywords: A list of keywords you want to check.
        """
        missing_keywords = [keyword for keyword in keywords if keyword not in article]
        return missing_keywords

# Loading Human Tools
# human_tools = load_tools(["human"])

# Retrieve SERP data globally
global_serp_data = retrieve_serp_data(blog_title)
titles = global_serp_data['titles']
people_also_ask = global_serp_data['people_also_ask']
related_keywords = global_serp_data['related_keywords']

# Define the SEO Expert Agent
seo_expert_agent = Agent(
    role='SEO Expert',
    goal='Ensure all related keywords are included in the article.',
    backstory="""You are an SEO expert. Your job is to ensure that the article ranks well on Google.""",
    tools=[CustomTools.check_keywords],
    llm=OpenAI(model_name="gpt-4", temperature=0),
    verbose=True,
    allow_delegation=True
)

# Define the agents
headline_agent = Agent(
    role='Headline Creator',
    goal='Create an engaging, question-based headline.',
    backstory="""You are a headline creator. Your job is to create an engaging, question-based headline.""",
    llm=OpenAI(model_name="gpt-4", temperature=0.7),
    verbose=True,
    allow_delegation=True
)

pas_formula_agent = Agent(
    role='PAS Formula Writer',
    goal='Write the leading paragraph using the PAS formula within 80 words.',
    backstory="""You are a PAS formula writer. Your job is to write the leading paragraph using the PAS formula.""",
    llm=OpenAI(model_name="gpt-4", temperature=0.7),
    verbose=True,
    tools=[CustomTools.word_count],
    allow_delegation=True
)

snippet_answer_agent = Agent(
    role='Snippet Answer Writer',
    goal='Compose the second paragraph directly answering the headline question within 50 words.',
    backstory="""You are a snippet answer writer. Your job is to write a very helpful answer to the headline question for get featured in the snippet box.""",
    llm=OpenAI(model_name="gpt-4", temperature=0.2),
    verbose=True,
    tools=[CustomTools.word_count],
    allow_delegation=True
)

related_questions_agent = Agent(
    role='Related Questions Elaborator',
    goal='List and elaborate on related questions in a structured format.',
    backstory="""You are a related questions elaborator.""",
    llm=OpenAI(model_name="gpt-4", temperature=0.7),
    verbose=True,
    allow_delegation=True
)

summary_agent = Agent(
    role='Summary Writer',
    goal='Conclude the article with a succinct and engaging summary under 50 words.',
    backstory="""You are a summary writer. Your job is to write a succinct and engaging summary.""",
    llm=OpenAI(model_name="gpt-4", temperature=0.7),
    verbose=True,
    tools=[CustomTools.word_count],
    allow_delegation=True
)

editor_agent = Agent(
    role='Editor',
    goal='Ensure the quality and coherence of the entire article.',
    backstory="""You are an experienced editor who will check if the quality of the post meets the requirements and will provide constructive suggestions.""",
    verbose=True,
    tools=[CustomTools.word_count],
    allow_delegation=True
)

# Define the tasks
headline_task = Task(description=f'Create a question-based headline for the article. Try to imitate the following titles of the top ten results on Google SERP as much as possible for better ranking: {titles}. Don\'t forget the target audience are {target_audience}', agent=headline_agent)
pas_formula_task = Task(
    description=f'Write a leading paragraph using the PAS formula for these target audience: {target_audience}. Pick some keywords and insert to your content: {related_keywords}. Check if the text exceeds {max_leading_paragraph_word_count} words, if so, rewrite.',
    agent=pas_formula_agent,
    tools=[CustomTools.word_count]
    )
snippet_answer_task = Task(
    description=f'Write a second paragraph that directly answers the headline question for the target audience: {target_audience}. Pick some keywords and insert to your content: {related_keywords}. Don\'t forget to add a transitional paragraph at the end to keep the readers engaged and encourage them to continue reading. Check if the text exceeds {max_snippet_answer_word_count} words, if so, rewrite.',
    agent=snippet_answer_agent,
    tools=[CustomTools.word_count]
    )
related_questions_task = Task(
    description=f'''List and answer relevant questions for the target audience({target_audience}), enabling them to gain deeper insights into the topic of the current article. Note that pick some keywords and insert to your content: {related_keywords}.
    To achieve better rankings, make sure that all these questions are obtained: {people_also_ask}(The snippets in this list represent the standard answers to the corresponding questions. They should be referred to during the creation process to avoid factual errors).
    To ensure that each paragraph is written long enough, use the PAS formula to make the content more abundant.''',
    agent=related_questions_agent
    )
summary_task = Task(
    description=f'Write a concise and powerful summary. Pick some keywords and insert to your content: {related_keywords}. Check if the text exceeds {max_summary_word_count} words, if so, rewrite.',
    agent=summary_agent,
    tools=[CustomTools.word_count]
    )
editor_task = Task(
    description=f'''Review the article for quality and coherence.
    Check if the post's leading paragraph uses the PAS formula and is within 80 words, if not, ask relevant co-workers to rewrite this paragraph;
	Check if the second paragraph of the post is truly helpful to the readers and within 50 words, if not, ask relevant co-workers to rewrite this paragraph;
	Check if the summary paragraph of the post is within 50 words, if not, ask relevant co-workers to rewrite this paragraph;
	Check if all the article's secondary headings and corresponding content are relevant to the article's theme;
	Check if the total word count of the article  is reaching {target_word_count} words, and if not, ask relevant co-workers to add more secondary headings and corresponding content, while providing your expansion suggestions.''',
    agent=editor_agent,
    tools=[CustomTools.word_count]
    )
seo_expert_task = Task(
    description=f'Check if all related keywords({related_keywords}) appear in the article. If not, try to insert the missing keywords to the article.',
    agent=seo_expert_agent,
    tools=[CustomTools.check_keywords]
    )

# Instantiate the crew with a sequential process
crew = Crew(
    agents=[headline_agent, pas_formula_agent, snippet_answer_agent, related_questions_agent, summary_agent, editor_agent, seo_expert_agent],
    tasks=[headline_task, pas_formula_task, snippet_answer_task, related_questions_task, summary_task, seo_expert_task, editor_task],
    process=Process.sequential,
    verbose=2
)

# Kick off the crew
result = crew.kickoff()

Thanks in advance for this error checking.

See #135 and #110, it is due to the pydantic version currently referenced but there are workarounds.

This one is new to me, but flagging it as a bug so I can look at it


Move to neotraverse

Drastically reduces bundle size (125k to 19k) and depedency graph reduced from dozes to about 6 deps
Tests still passing
Before:

After:

@SnailBones @mapsam i know this project is very old, but any chance yall could review/merge this PR?

Hey there @danawoodman thanks for the ping! I'm no longer at Mapbox so don't have the ability to merge PRs any longer.
Pinging @greenlaw @AlexanderBelokon for some additional eyes. 🙏

thank you!


feat: add liferay-portal/no-react-dom-render rule

Just for fun, I made this one pretty comprehensive (but not exhaustive) in terms of finding bindings to the "react-dom" render() function. I took the simple approach of remembering imports as I see them, and checking CallExpression nodes along the way to see if they correspond to an import. This is in contrast to the alternative approach which would be to scan the entire input accumulating imports and then checking CallExpressions at the very end.
Three reasons for this:

It's simpler.
import statements usually go at the top of the file, so we will probably always see them first.
I suspect, but am not sure, that import bindings have const semantics, and so are affected by the temporal dead zone, which makes it even less likely that they'd be used before we've seen them (you could still use them inside a lazily-executed function, but I think the odds of that are vanishingly small).

Possible add-on to consider:

Do want to allow ReactDOM.render inside test/**/*.js directories?

Going to merge this — tested it in liferay-portal and all is good — and if we decide we want to loop back and add an exception that allows the use of ReactDOM.render in tests, that will be easy enough:
diff --git a/portal.js b/portal.js
index b18ebf5..b097269 100644
--- a/portal.js
+++ b/portal.js
@@ -17,6 +17,14 @@ const config = {
 			jsx: true,
 		},
 	},
+	overrides: [
+		{
+			files: ['**/test/**/*.js'],
+			rules: {
+				'liferay-portal/no-react-dom-render': 'off',
+			},
+		},
+	],
 	plugins: [local('liferay-portal')],
 	rules: {
 		'liferay-portal/no-explicit-extend': 'error',

Although in tests, we might actually want to recommend the use of the render function from @testing-library/react instead.


update readme

@h1alexbel thank you for reporting this. I'll assign someone to take care of it soon.

@h1alexbel this is your task now, please go ahead. Deadline (when this ticket should be closed) is 2023-07-07T13:59:17.098330.
Estimation here is 60 minutes, that's how much you will be paid.
Remember, you don't have to solve everything in this ticket - you can solve it partially and leave todo markers in the code, which will become future tasks.
If you have any questions don't ask me, I'm not a technical person. Open new tickets instead.
If you don't have time or simply don't want to work on this, you can always resign.

@h1alexbel thank you for resolving this ticket. I've just added it to your active invoice. You can always check all your invoices and more on the Contributor Dashboard.


What about CSS3D scene rendering in Three.js ar version?

Hello! It's possible to render Three.js CSS3D scenes in AR? And how we can render html dom elements in AR?

@polyzer Have you tried using AR.js with A-Frame?

No, only Three.js. There is way - using A-Frame? Could you, please, post a link on example?

This PR has been closed due to inactivity for over one year. Please open a new, updated issue if the problem or the question is still relevant.


Can't remove line for all frames in range

I discovered recently that edits made while an animation is playing are applied to all frames in the playback range, which is super convenient! (Though, I do not believe this is mentioned anywhere in the documentation.)
Adding and removing columns works this way, as does removing lines, but I cannot seem to add a line while an animation is playing, neither with esc+/ nor with alt+/.
I can achieve the desired outcome by cutting/pasting across all frames in range when the affected area is the same in all frames, but this can be a bear if I need to shift an entire animation downward or create more space at the top of the image.
Thanks!

Weird. There was a typo preventing this from working. It should be fixed in the "dev" build now. Can you please verify?
Thanks for the report!

I do not believe this is mentioned anywhere in the documentation.

 I'll have to mention this in the help file. I think it's a pretty cool feature, too. I was going to cover animation in the Pt 2 video tutorial, when I get around to it.
I'm glad to see that you're playing with the animation features, btw! :)

Works like a charm; thanks!

Oh! And I believe there is a similar issue with the alt/esc+[ shortcut for cycling to the previous f1-f10 character palette.

Oh! And I believe there is a similar issue with the alt/esc+[ shortcut for cycling to the previous f1-f10 character palette.

That one is a little weirder and trickier. I'm not yet sure why that doesn't work, but think the esc-[ gets mixed up with an escape control code (which also uses the [ character), and doesn't register properly. I did implement esc-pgup and esc-pgdown as an alternative to esc-[, as mentioned in the source code:
1348                 elif c == 91 or c == 339:   # alt-[ previous character set. apparently this doesn't work
1349                     self.prevCharSet() # during playback, c == -1, so 339 is alt-pgup, as a backup

It's ugly. I don't like it. I'll revisit this issue and see if I can come up with something better.


ci: add blitzar-sys README to crates.io ( PROOF-637 )

Rationale for this change
The blitzar-sys crate should have a basic README that provides users information and links to the main components of the Blitzar project.
What changes are included in this PR?

A README.md file is added to the blitzar-sys Rust project.

Are these changes tested?
Yes with VSCode's markdown viewer but not on crates.io.

The crate is used by Space and Time's companion crate, blitzar, that provide a High-Level Rust wrapper

Typo: should be "provides"


Anyway to see single device deployments on azure portal

Hi
Is there anyway to see the history of deployments done through VS Code in Azure Portal? Or is this process not involving Azure at all?
BR

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

ID: a7852968-3c54-5584-df91-b01521efae43
Version Independent ID: c7340985-f6d2-2bf8-71e5-ee62dadb25e3
Content: Deploy Azure functions with Azure IoT Edge
Content Source: articles/iot-edge/tutorial-deploy-function.md
Service: iot-edge
GitHub Login: @kgremban
Microsoft Alias: kgremban

Hi @kurtng great question thanks for asking! You can leverage Azure DevOps for that: https://docs.microsoft.com/en-us/azure/iot-edge/how-to-ci-cd
All Best!

@kurtng Thanks for the feedback. The deployment you triggered in VS Code is the same thing you did in Azure Portal. Could you also elaborate a bit more about your suggestion here. Do you wish to see the deployment list in the screenshot blow in VS Code?

That could be nice as well to see the history of deployments in VS Code. But the thing is that I cannot see any items at all in this list you are refering to here in Azure portal. Even though I have succesfully published to the device these donot show up in Azure Portal. Even the deplyments I did in Azure portal does not show up here. Although in Azure portal I am deploying through Device Details -> Set Modules.
Another thing I think is a bit confusing is that whenever you deploy a new route in Azure portal or whenever you publish a change like edited query in ASA job (which actually changes the location on Azure storage where the job image is saved) these do not synchronize with the deployment manifest template I have in VS Code. Or I was not able to see a way to synchronize it to VS Code.
Another thing that would be great is to be able to change the ASA job query directly in VS Code. And maybe even synch that with ASA job in the portal or vice versa.

Hello @kurtng , since this is a feature request can you post this as a feedback @ Azure IoT Edge Uservoice. This will allow the community to upvote and for the product team to include into their plans.
Thank you so much!

We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


count() optimization with !empty() check instead when possible

[x] Is this related to quality assurance?

Are there any benchmarks on these optimizations?
Honestly, I find count() > 0 to be easier to understand when we're working with a suite of array operations. It clearly defines that we are looking for an array with at least one item in it when done. Because empty has so many semantics in PHP, I have to look at the context (the array operations) to understand what empty might be testing for.
I guess I'm wondering if the optimizations will offer any measurable benefit that warrants reviewing, merging, and releasing these dozens of patches, particularly when there may be good rationale to leave the code as-is. Can you provide the background that led to these pull requests, please?

there is online benchmark for it http://maettig.com/code/php/php-performance-benchmarks.php#empty

That's VERY old: don't base yourself on it.
If we want to go with benchmarks, we should use our own benchmarks: https://github.com/zendframework/zend-stdlib/tree/7c7663c7c580563a14ac03783a981452254d1052/benchmark

Based on that link, @samsonasik, I'd argue that the approach that is more semantically close to what we want to demonstrate then is <expression> !== [], as that has comparable performance to ! empty(<expression>), but more correctly demonstrates that an array with no items is undesirable.
But as @Ocramius notes: we have a benchmark suite in this repo already. Add benchmarks so we can prove it.

I've added the benchmark, this is on count-op branch result:
$ vendor/bin/phpbench run --revs=2 --iterations=2 --report=aggregate benchmark/ArrayUtilsBench.php
PhpBench 0.13.0. Running benchmarks.
Using configuration file: /Users/samsonasik/www/zf-components-contribute/zend-stdlib-1/phpbench.json

\ZendBench\Stdlib\ArrayUtilsBench

    benchHasStringKeys            R2 I1 P0      [μ Mo]/r: 8.500 8.500 (μs)      [μSD μRSD]/r: 0.000μs 0.00%
    benchHasIntegerKeys           R2 I1 P0      [μ Mo]/r: 8.500 8.500 (μs)      [μSD μRSD]/r: 0.000μs 0.00%
    benchHasNumericKeys           R2 I1 P0      [μ Mo]/r: 8.750 8.750 (μs)      [μSD μRSD]/r: 0.250μs 2.86%

3 subjects, 6 iterations, 6 revs, 0 rejects
(best [mean mode] worst) = 8.500 [8.583 8.583] 8.500 (μs)
⅀T: 51.500μs μSD/r 0.083μs μRSD/r: 0.952%
suite: 133eee789834ba0dd50ca7a56cbb70793bb0a9b8, date: 2018-07-11, stime: 02:25:52
+-----------------+---------------------+--------+--------+------+-----+------------+---------+---------+---------+---------+---------+--------+--------+
| benchmark       | subject             | groups | params | revs | its | mem_peak   | best    | mean    | mode    | worst   | stdev   | rstdev | diff   |
+-----------------+---------------------+--------+--------+------+-----+------------+---------+---------+---------+---------+---------+--------+--------+
| ArrayUtilsBench | benchHasStringKeys  |        | []     | 2    | 2   | 1,241,072b | 8.500μs | 8.500μs | 8.500μs | 8.500μs | 0.000μs | 0.00%  | 0.00%  |
| ArrayUtilsBench | benchHasIntegerKeys |        | []     | 2    | 2   | 1,241,072b | 8.500μs | 8.500μs | 8.500μs | 8.500μs | 0.000μs | 0.00%  | 0.00%  |
| ArrayUtilsBench | benchHasNumericKeys |        | []     | 2    | 2   | 1,241,072b | 8.500μs | 8.750μs | 8.750μs | 9.000μs | 0.250μs | 2.86%  | +2.94% |
+-----------------+---------------------+--------+--------+------+-----+------------+---------+---------+---------+---------+---------+--------+--------+

cherry-picked to master branch with count() usage, got result:
$ vendor/bin/phpbench run --revs=2 --iterations=2 --report=aggregate benchmark/ArrayUtilsBench.php
PhpBench 0.13.0. Running benchmarks.
Using configuration file: /Users/samsonasik/www/zf-components-contribute/zend-stdlib-1/phpbench.json

\ZendBench\Stdlib\ArrayUtilsBench

    benchHasStringKeys            R2 I1 P0      [μ Mo]/r: 9.500 9.500 (μs)      [μSD μRSD]/r: 0.000μs 0.00%
    benchHasIntegerKeys           R2 I1 P0      [μ Mo]/r: 10.250 10.250 (μs)    [μSD μRSD]/r: 0.250μs 2.44%
    benchHasNumericKeys           R2 I1 P0      [μ Mo]/r: 9.500 9.500 (μs)      [μSD μRSD]/r: 0.000μs 0.00%

3 subjects, 6 iterations, 6 revs, 0 rejects
(best [mean mode] worst) = 9.500 [9.750 9.750] 9.500 (μs)
⅀T: 58.500μs μSD/r 0.083μs μRSD/r: 0.813%
suite: 133eee7c335c63029c1f2ab2dadf5277a0d1f232, date: 2018-07-11, stime: 02:27:42
+-----------------+---------------------+--------+--------+------+-----+------------+----------+----------+----------+----------+---------+--------+--------+
| benchmark       | subject             | groups | params | revs | its | mem_peak   | best     | mean     | mode     | worst    | stdev   | rstdev | diff   |
+-----------------+---------------------+--------+--------+------+-----+------------+----------+----------+----------+----------+---------+--------+--------+
| ArrayUtilsBench | benchHasStringKeys  |        | []     | 2    | 2   | 1,241,552b | 9.500μs  | 9.500μs  | 9.500μs  | 9.500μs  | 0.000μs | 0.00%  | 0.00%  |
| ArrayUtilsBench | benchHasIntegerKeys |        | []     | 2    | 2   | 1,241,552b | 10.000μs | 10.250μs | 10.250μs | 10.500μs | 0.250μs | 2.44%  | +7.89% |
| ArrayUtilsBench | benchHasNumericKeys |        | []     | 2    | 2   | 1,241,552b | 9.500μs  | 9.500μs  | 9.500μs  | 9.500μs  | 0.000μs | 0.00%  | 0.00%  |
+-----------------+---------------------+--------+--------+------+-----+------------+----------+----------+----------+----------+---------+--------+--------+

@samsonasik Honestly, that demonstrates almost no measurable difference. I'd prefer we go with [] !== <expression> over ! empty(<expression>) as it's easier to understand in this context (which includes a variety of array_*() operations in the expressions).

@weierophinney updated

Note: I'm merging the patch as-is, but the most effective performance optimisation here would be to loop and bail out early if a value is found. Would be interesting to have such functional construct in the library 👍


Usage of 'active: true' in config

I have a doubt regarding the usage of config.
Is it possible to use
plugin1 : {     active: true }
Instead of
plugin1: true
in node js example, because the first structure gives me some stability with my program.

Actually, for now even plugin: {} would work. But plugin: { active: false }—wouldn't.


docs: logging

Summary:
In this PR, detailed documentation on logging is added. I have added information about different log levels and how to configure them. I have also added one diagram.
Issue Reference(s):
Fixes #809
Claim #809

Just pass the doc thru grammarly. There are a few punctuation issues.
A image can be added, but it should be from Tailcall. How about a hero image?

I like the overall content. It could though emphasize a little bit on how Tailcall leverages these levels to improve devex.

Just pass the doc thru grammarly. There are a few punctuation issues.
A image can be added, but it should be from Tailcall. How about a hero image?

Sure, I will correct those punctuation errors.
And for the image part, I have already added one called logging.png. Can you check that one and let me know if that's ok?

@melsonic Yes, the image is good. We generally design artwork in canvas.excalidraw. Would be even better if you could use that though I would not mind the author take some creative liberty here :-)

@melsonic Yes, the image is good. We generally design artwork in canvas.excalidraw. Would be even better if you could use that though I would not mind the author take some creative liberty here :-)

I created the image using Excalidraw but was unsure how to directly link it to the document. So, I exported it as a JPG file and added the image in that logging.md file.
I have added the diagram to canvas.excalidraw file. I will add that in the next commit. Are there any additional steps I should take to properly link the image?

I think the image in SVG doesn't get the right fonts. Let's use png in this case.

I think the image in SVG doesn't get the right fonts. Let's use png in this case.

Added png image :+1:
Please confirm if something still needs to be changed/added.


[AMBARI-23811] TimelineMetricsFilterTest fails if dir name contains @

What changes were proposed in this pull request?
Fix unit test failure caused by build running in directory with @2 suffix, by avoiding URL escaping.
https://issues.apache.org/jira/browse/AMBARI-23811
How was this patch tested?
$ mv ambari Ambari-Github-PullRequest-Builder@2
$ cd Ambari-Github-PullRequest-Builder@2
$ mvn -am -pl ambari-metrics/ambari-metrics-timelineservice clean test
...
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.366 sec - in org.apache.ambari.metrics.core.timeline.TimelineMetricsFilterTest
...
[INFO] BUILD SUCCESS

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/2227/
Test PASSed.


SqlRSSetup: New resource

Details of the scenario you tried and the problem that is occurring:
In SQL Server 2017 Reporting Services are no longer a part of SQL Server, but a separate install Microsoft SQL Server 2017 Reporting Services.
To be able to install this I think we should add a new resource that can correctly install this component. The other option is to extend xSQLServerSetup to be able to install this as well.
The DSC configuration that is using the resource (as detailed as possible):
n/a
Version of the Operating System, SQL Server and PowerShell the DSC Target Node is running:
Microsoft SQL Server 2017 Reporting Services
What module (SqlServer or SQLPS) and which version of the module the DSC Target Node is running:
n/a
Version of the DSC module you're using, or 'dev' if you're using current dev branch:
Dev

I think xSQLServerSetup should continue to only focus on the capabilities provided by setup.exe in the SQL Server installation media. Since SSRS has be split out into its own installer, I believe it should have its own resource.

I agree with @randomnote1.

If you do a new SSRS 2017 resource please scope it to include its new cousin Power BI Reporting Services. It's the same code base and licensed with SQL Server Software Assurance. It's also a separate download, and the installer is basically exactly the same.

I agree, SSRS 2017 should be considered together with PowerBI Report Server

When is such a resource availlable?

@maroliict There are no one in the community working on this yet, as far as I know.

Working on this one. Does anyone know how to detect what editon of Reporting Services is installed?
If I know that I can make /EditionUpgrade work.

This is being proposed in PR #1308, but I opened issue #1309 to track @codykonior suggestion. My first thought was to fix a resource for that in PR #1308, but it grow so big (lot of side issues detected) so I hold off on that.


English Translation Part 2

Sorry for the delay, emergency came up.
I will be testing the command again tonight to see if the issue is still present.
I will finish the artifact info and fix the monster.ts, and I'll do the rest when I wake up.
Please expect some delay while I'm doing the translations.
I had some issues editing the artifactInfo file where it would move the entire file somewhere else, and would cause errors. I don't know what that was about but I will keep trying lol

Thank you, it is not an urgent matter, I will suspend the update of the tools for a while to finish the work of the game resource parsing scripts first.


Remove unused and superfluous fields from application form

Changes:

Remove keywords, as they are unused according to code and @abitcoinperson
Merge "short description" and "long description (optional)" into "project description"

Test application on Vercel succeeded & application was received.

i agree keywords should go, but the short description is displayed on a projects "avatar" on the projects page, and the long becomes visible after clicking on a specific project. think this will add a step for us.

I am aware of that. Given that projects are added manually by us, we can trim the description as we see fit.
We shouldn't offload this additional work to applicants.

I will merge this now. Will take full responsibility in case something breaks.


[FEATURE] Add Scroll to the top button

Description
want to add Scroll back to the top button on the website.

Screenshots
No response
Additional information
No response

@sazamansari can you please assign it to me under gssoc'23


Only deploy crd conversion on unique app

When installed as a unique app, we would only like the conversion webhook deployment to be installed.
Towards https://github.com/giantswarm/giantswarm/issues/16382

Let me know if you see a better way to do this.

We still need the mutating/validating webhooks independent of the conversion. So this does not work

We still need the mutating/validating webhooks independent of the conversion. So this does not work

The idea was that mutating/validating webhooks can be selected by watch filter label so they should go to the controller matching the label. CRDs are cluster scoped so we thought it would make sense to deploy a unique instance of the controller solely for CRD conversion and configure the CRD to use it with opsctl ensure crds.


Feature/arrays

Basic array support
Organized namespaces
Slightly better performance.

Native:
// * Summary *

BenchmarkDotNet=v0.10.1, OS=Microsoft Windows NT 6.2.9200.0
Processor=Intel(R) Core(TM) i7-4820K CPU 3.70GHz, ProcessorCount=8
Frequency=3613278 Hz, Resolution=276.7570 ns, Timer=TSC
  [Host]     : Clr 4.0.30319.42000, 64bit RyuJIT-v4.6.1586.0
  DefaultJob : Clr 4.0.30319.42000, 64bit RyuJIT-v4.6.1586.0

                            Method |       Mean |    StdDev |  Gen 0 | Allocated |
---------------------------------- |----------- |---------- |------- |---------- |
   SerializationClassWithPrimitive | 60.2899 us | 0.0907 us | 8.1380 |  56.85 kB |
 DeserializationClassWithPrimitive | 66.9826 us | 0.3465 us | 2.7181 |  27.32 kB |

V2:
                            Method |       Mean |    StdDev |  Gen 0 | Allocated |
---------------------------------- |----------- |---------- |------- |---------- |
   SerializationClassWithPrimitive | 46.8757 us | 0.0199 us | 5.5990 |  36.08 kB |
 DeserializationClassWithPrimitive | 54.4340 us | 0.0425 us | 2.7832 |  27.68 kB |

Yeahar... well, "quickly" is relative. 😄  I've been at this for nearly 3 months now!  How sad is that?!  Almost embarrassed by it.  I keep saying to myself that I might not be the super smartest out there, but I sure am persistent. 😛
In any case, it has indeed taken a while, but I am super happy where things are now.  I am able to add new features with relatively little friction now.  We should have v2 wrapped up in a few weeks from now at most I am thinking.  Let's see how it goes.

Today or tomorrow I push my changes. I am doing next tasks from configurations.
By the way: We don't have anything from this project. Do you have any ideas what should we do with this project next? Do you work on this project only for fun/learn something?
If we want this project was more popular, we need to create a webpage or something else.

Oh man, interesting you mention that because I saw the following URL last week and wanted to share it with you: https://medium.freecodecamp.com/how-we-got-a-2-year-old-repo-trending-on-github-in-just-48-hours-12151039d78b
I think getting a logo would be pretty cool. :)  Can you do any graphical design?  I am not too good with that.
So you know, the whole reason why I am even talking with you is that I am working on another side project that is a proof-of-concept for a POCO-based MSBuild (you can upvote the issue here if you haven't already).  You can see the proof-of-concept here:
https://github.com/Mike-EEE/Stash/tree/master/MsftBuild.Model
So I was working on this, and I got it working for JSON with a little work, then got it working with Xaml with no problem at all, but when I got to working on XML, there were some issues.
I first tried the DataContractSerializer, but ran into a problem I cannot recall right now (will have to look into this as I would like to write a blog post about this), so then I switched to XmlSerializer, but then ran into the XML Doesn't Support Interfaces problem.  I think it was there that I saw your answer to this repo.
It just seems bizarre to me that there's an XML serializer that "just works" and the XML serializers that we do use are nearly a decade old without much upkeep (for addressing these very issues), so this why (or one of the issues why) I am helping you out here.
As for me, I am not too keen with being popular, but I do like having something that I built, which is sort of the primary driver for me here.  I basically want to have an XML serializer "just work" while also incorporating a few ideas I have had about serialization for a while.  If it ends up being faster than .NET serializer, then all the better. :)

I will answer later.

If you really think about Json, Xaml ... we should think about change name of this project. Eg ExtendedSerializer instead of ExtendedXmlSerializer.
I'm not good in graphical design field too. But first we have to finish v2. Then I will take care of logo.
I'v seen POCO-Based MSBuild. In my opinion it is good idea.

HAH!  Yeah, now you're thinking like me. 😄  Although I did try to make the IWriter abstract, I ended up making it the IXmlWriter anyways, as I just wanted to get it to work.  Although now that it is working, we might want to revisit that.
My problem is that I do not know how much time I will be able to dedicate this after I get v2 done.  I have already exceeded wayyyyyy more time than I hoped invest in getting this to work.


RuntimeError: cannot access configuration outside request

Originally reported by: BitBucket: dAnjou, GitHub: dAnjou

This is kinda weird:
https://gist.github.com/3289774
$ pip freeze -l
Flask==0.8
Flask-Uploads==0.1.3
Jinja2==2.6
SQLAlchemy==0.7.7
Werkzeug==0.8.3

Bitbucket: https://bitbucket.org/leafstorm/flask-uploads/issue/10

@dAnjou looks like you removed the gist, so I can't see what you were reporting.
Closing, but feel free to re-open if you still have the issue.


PostgreSQL Sorting

On a PostgreSQL DB,  i've got a table with a BIGINT field (see MaxDistance field in next images).

Clicking on column header to sort, field is treated as text, while with INTEGER fields all is OK

Version 0.3.8
Distribution: Windows installer
OS: Windows 10

Ciao Stefano,
thank you for helping me with reports on PostgreSQL side. Really appreciated.


Error from lxml when parsing amendments "purpose" field

Hi,
I've run into some errors when parsing the bulk data after running the following commands:
usc-run govinfo --bulkdata=BILLSTATUS --congress=117
usc-run bills

Seems like there might be an issue with getting fields that don't exist. Here is the error, for example, when parsing hr51-117
Traceback (most recent call last):

  File "/usr/local/lib/python3.8/site-packages/congress/tasks/utils.py", line 174, in process_set
    results = fetch_func(id, options, *extra_args)

  File "/usr/local/lib/python3.8/site-packages/congress/tasks/bills.py", line 148, in process_bill
    process_amendments(bill_id, xml_as_dict, options)

  File "/usr/local/lib/python3.8/site-packages/congress/tasks/bills.py", line 292, in process_amendments
    amendment_info.process_amendment(amdt, bill_id, options)

  File "/usr/local/lib/python3.8/site-packages/congress/tasks/amendment_info.py", line 13, in process_amendment
    amdt = build_amendment_json_dict(amdt_data, options)

  File "/usr/local/lib/python3.8/site-packages/congress/tasks/amendment_info.py", line 57, in build_amendment_json_dict
    'purpose': amdt_dict['purpose'][0] if type(amdt_dict['purpose']) is list else amdt_dict['purpose'],

KeyError: 'purpose'

I think I've fixed it in 939bf01. Fingers crossed.


Fix error handeling for str.cat dataframe #5621

[X] Tests added / passed
[X] Passes black dask / flake8 dask

Following issue: #5621
Update str.cat function to handle dataframe input

cc @TomAugspurger, could you give this a quick review?

cc @TomAugspurger or @jcrist I think that this probably needs attention from one of you

@sephib what's the current status here? Do you intend to keep working on this?

You mentioned  that you would prefer to

Passing a DataFrame through certainly seems doable, but I won't be able to look closely in the near-term.
I'll be happy to try and solve the issue - however since the error is from within pandas what is the correct way to address the fix?

Is the error in pandas, or in how you're calling pandas?

Superseded by #5719. Closing.


Dcos backup

The updates from dmitry were for standard mesos.  It didn't feel right to ask for external contributors to make changes for DCOS.  So this is a PR for the changes that mirror his changes in the DCOS configs.

@elingg @gabrielhartmann needs a review

Looks perfect. :+1:


request: keyboard shortcut

Hello
Is it possible to bind a keyboard shortcut to the block/unblock image function? This would be really useful.
before webextensions came along, I used to do Ctr+Alt+I using the keyconfig extension (setting permissions.default.image=1/2)

Implemented. Now, you can use ctrl+1-5 to toggle options.


When i use DownloadDirectory method, I want to pass only some files.

FTP OS:  Windows
FTP Server: Windows
Computer OS: Windows
FluentFTP Version: <IP_ADDRESS>
<write details about your bug report / feature request here>
Logs :
I want only some files pass, and another files download.
But when i use DownloadDirectory method, then all files download.
How can i only some files pass??
I may not have found an answer because my English is not good. Sorry

If file download "A" remote folder to "B" remote folder.
"A" folder have "file1.txt", "file2.txt", "file3.txt".
But i don't want download "file2.txt".
How can i "file2.txt" file pass??

If you want to exclude files based on their name, check out rules.
https://github.com/robinrodricks/FluentFTP/wiki/Rules#what-kinds-of-rules-are-supported-and-how-do-rules-work
Specifically, FtpFileNameRegexRule can be set to 'false' to exclude files of a given name.


Running the latest Alpha version 1.7.0 incorrectly prompts the user to update

Windows Server 2022 natibely running the latest alpha version amd64.exe
Ever since it was released, my latest beta version was informing me to update, so I updated to the Alpha 1.7.0 and I still get asked to update haha.
Only a minor issue but wanted to report it anyway as I'm sure it's a simple fix.

Yes, this is a small fix. Will do it for the next version.

Should be fixed in latest beta now!

Forgot to respond to this at the beginning of my day. Confirming it is fixed and closing the issue :)


The link on the front page is not publicly accessible

The link on the front page readme
The carla autoware bridge is now hosted and maintained here. is not publicly accessible.
When I am re-routed to git-lab, it points me to a 404 page not found

issue is now resolved thanks~~


About Noise Settings

Dear authors,
Thanks for your open-source library. I would like to ask if the noise settings in the current code ensure that the noise labels remain consistent across different random seed selections. If not, would this affect the fairness of experimental comparisons?
Best regards.

Thank you very much for your response! So, the results in your paper primarily follow Scheme 2, correct? If I want to conduct some explorations, which scheme do you think would be more reasonable?

Yes, the paper adopts the second scheme. I would recommend trying out the first scheme if there is enough compute, though my guess is that the result won't be significantly different (but I might be wrong here). Looking forward to seeing the new results!

Thank you very much for your suggestions.


feat: use storybook v8

Description
Updates our Storybook instance to the latest major release

How and where has this been tested?
Please tag yourself on the tests you've marked complete to confirm the tests have been run by someone other than the author.
Validation steps

Regression testing
Validate:

The documentation pages for at least two other components are still loading, including:

[ ] The pages render correctly, are accessible, and are responsive.

If components have been modified, VRTs have been run on this branch:

[ ] VRTs have been run and looked at.
[ ] Any VRT changes have been accepted (by reviewer and/or PR author), or there are no changes.

Screenshots

To-do list

[ ] I have read the contribution guidelines.
[ ] I have updated relevant storybook stories and templates.
[ ] I have tested these changes in Windows High Contrast mode.
[ ] If my change impacts other components, I have tested to make sure they don't break.
[ ] If my change impacts documentation, I have updated the documentation accordingly.
[ ] ✨ This pull request is ready to merge. ✨

@castastrophe Interesting that the PR deployed docs site link above doesn't include the link to Storybook.


Exchange Unicode with CSS. Fixes #13

Exchange Unicode with CSS. this should fix issue #13.

Thank you all!


Check world/ group access of exe on Mac

Raised in the MultiBit issues db but might also apply to MBHD:
Just installed latest version for OS X (from https://multibit.org/releases/multibit-0.5.18/multibit-0.5.18.dmg). Permissions on the executable in the .app bundle include world and group write permissions. Seems this could provide an injection point for malware.
-rwxrwxrwx@ 1 sysadmin  admin    72K Apr 28  2014 MultiBit.app/Contents/MacOS/JavaApplicationStub*
Seems to me -rwxr-xr-x would be a more secure choice. Can/should this be changed?

Originally raised here:
https://github.com/jim618/multibit/issues/694

Should be a case of editing "Installer | Screens & Actions" and making the changes for each variant. We could add +x to the Linux install script too.

This is not a problem with the MultiBit HD installed JavaApplicationStub (It uses a different installer to MultiBit Classic).
The rights are:
jims-macbook-91:MacOS jim$ ls -l
-rwxr-xr-x  1 jim  admin  55988  9 Jun 13:49 JavaApplicationStub

which is what we want. Thus no change to the installer is necessary.
The change to MultiBit Classic is still required and covered by the issue jim618/multibit#694
Awaiting review and closing

Checked this a few nights ago so we're good to go.
Closing.


Classify peak built from merged S2s

What does the code in this PR do / what does it improve?
This pr aims to mitigate the effect of misclassification when the merge S2 plugin merges a normal S1 with a small S2 and labels the new peak S2 regardless of the peak rise time. Find details in this note
Can you briefly describe how it works?
We now add a new plugin that redoes the classification for merged S2s.

@zhut19 , I'm wondering if this would be better than not merging these non-S2s in the first place? Would e.g. this wf be how we'd want to be doing our clustering for such an S1, including great deal of hits into it?
An alternative approach would be to prevent adding all kinds of S2-peaklets to an S1-peaklet in the mergedS2s plugin as, besides the classification (what you are doing now) also the clustering is off in this wf. I think we did not want to reclassify after the MergedS2s re-clustering, otherwise it's kind of defeating the purpose of that plugin, right?

I'm wondering if this would be better than not merging these non-S2s in the first place? Would e.g. this wf be how we'd want to be doing our clustering for such an S1, including great deal of hits into it?

I think the effect on the S1 is negligible is not it? Once https://github.com/XENONnT/straxen/pull/601 and https://github.com/XENONnT/straxen/pull/623 are merged the bias on area is below half a percent and the additional hits wont contribute to the tight coincidence level. And I also hope that re-classification tags the peak as a S1 peak.
I think from a physics point of view it can be that a small sized S1 belongs actually to an S2 signal as there is almost no difference in the scintillation process. Maybe we can add here some sort of threshold? To include only S1 signals up to a certain fraction of SE's?

I think we did not want to reclassify after the MergedS2s re-clustering, otherwise it's kind of defeating the purpose of that plugin, right?

But I do not think that the current approach is correct either and after seeing your example I am also not convinced that simply hard coding everything to be an S2 is correct either.


Azure Sql and service end points

Query on this article - was written before service endpoints for sql became GA. Does this change the answer around Azure SQL support?

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

ID: 0da69878-a841-1f05-32c2-a1fcba10506f
Version Independent ID: 769913cc-0fa4-cd5b-b015-b7c5f38fc0d4
Content: Configuration Manager on Azure
Content Source: sccm/core/understand/configuration-manager-on-azure.md
Product: configuration-manager
GitHub Login: @aczechowski
Microsoft Alias: aaroncz

Thanks @john-louden for taking the time to provide feedback on Configuration Manager! We currently don't support Azure SQL. I suggest filing Product feedback to share the idea with the engineering team. (I also suggest you upvote this idea on UserVoice, which appears to be the same.) I think it’s important that you submit it directly, because that allows you to receive notifications and more closely monitor the progress. I'm closing this issue as there's nothing actionable for docs at this time.


Validate disk offering IOPS normal and maximum read/write values

Description
When creating a new disk offering ('createDiskOffering' command on API) one can set normal IOPS (write/read) higher than the maximum, breaking the logics on the disk offerings.
This PR adds verifications ensuring that normal read/write cannot be greater than maximum read/write. Additionally, it was added a global settings 'iops.maximum.rate.length' to ensure realistic values for the IOPS burst length (seconds).
The global settings 'iops.maximum.rate.length' configures the maximum IOPS read/write length; thus, preventing irrealistic values for a disk offering (e.g. hours or days of burst IOPS). The default value is 0 (zero), allowing any IOPS maximum rate length; thus keeping backward compatibility and not affecting any environment configuration after upgrades.
Example:
One can set the 'iops.maximum.rate.length' to '3600' (seconds); once the parameter is updated on the management server it will not be possible to create disk offerings with IOPS length higher than 3600 seconds (60 minutes).
Types of changes

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

@DaanHoogland I totally agree with you, that is why 'iops.maximum.rate.length' is zero by default (keeping the current behavior).  The idea is that system admins should also be able to enable/disable some restrictions, for safety.
The reason for this PR is because I have seen a case where normal IOPS was configured (by mistake) higher than Maximum IOPS. System admins should have control and be able to execute any action; however, humans are always error-prone :slightly_smiling_face:

makes sense @GabrielBrascher the check for those values should be enough, though. setting the extra maximum rate length seems excessive.

@DaanHoogland The problem is that libvirt/qemu might trip over a too high value causing Instances not be started with a very odd Exception.
I'd personally would set the maximum burst to 3600 (1h) to make sure typos won't prevent a VM from starting.
The same goes with sanity checking. It's Libvirt/Qemu which refuses to start the VM if these values are wrong.

@blueoranutang package

@DaanHoogland small typo on the blueorangutan package call. Could you please recall
@blueorangutan package? :)

@GabrielBrascher a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Looks like blueoragutan listens to me as well for packaging, I am not able to call for tests then. Thanks anyway @DaanHoogland.

Packaging result: ✖centos6 ✔centos7 ✔debian. JID-395

@blueorangutan package

@GabrielBrascher a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✔centos7 ✔debian. JID-400

@GabrielBrascher - just FMI - when/where was this burst length added? I mean in which Qemu version?
That's part of blkdeviotune in qemu/libvirt,  I suppose?

@andrijapanicsb Qemu supports IOPS bursts since version 2.6:

https://blogs.igalia.com/berto/2016/05/24/io-bursts-with-qemu-2-6/
https://github.com/qemu/qemu/blob/stable-2.6/docs/throttle.txt
https://wiki.qemu.org/ChangeLog/2.6

@blueorangutan test

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-566)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 39627 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3681-t566-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Smoke tests completed. 77 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

Thanks for the review and tests, @DaanHoogland!

@GabrielBrascher this looks fine. However, I would ask if it makes sense (or not!) to also validate not only the iops burst duration but also bytes rate duration? If not, that's all OK - let me know, please.
i.e.

(localcloud) SBCM5> > list configurations name=iops.maximum.rate.length | grep value"
"value": "10"
(localcloud) SBCM5> > create diskoffering bytesreadrate=1000 bytesreadratemax=1500 byteswriterate=1000 byteswriteratemax=1500 iopsreadrate=2000 iopsreadratemax=2500 iopswriterate=2000 iopswriteratemax=2500 bytesreadratemaxlength=15 byteswriteratemaxlength=15 iopsreadratemaxlength=15 iopswriteratemaxlength=15 name=xxx displaytext=xxx disksize=1
 Error: (HTTP 431, error code 4350) IOPS read max length (15 seconds) cannot be greater than iops.maximum.rate.length (10s seconds)
(localcloud) SBCM5> > create diskoffering bytesreadrate=1000 bytesreadratemax=1500 byteswriterate=1000 byteswriteratemax=1500 iopsreadrate=2000 iopsreadratemax=2500 iopswriterate=2000 iopswriteratemax=2500 bytesreadratemaxlength=15 byteswriteratemaxlength=15 iopsreadratemaxlength=15 iopswriteratemaxlength=9 name=xxx displaytext=xxx disksize=1
 Error: (HTTP 431, error code 4350) IOPS read max length (15 seconds) cannot be greater than iops.maximum.rate.length (10s seconds)
(localcloud) SBCM5> > create diskoffering bytesreadrate=1000 bytesreadratemax=1500 byteswriterate=1000 byteswriteratemax=1500 iopsreadrate=2000 iopsreadratemax=2500 iopswriterate=2000 iopswriteratemax=2500 bytesreadratemaxlength=15 byteswriteratemaxlength=15 iopsreadratemaxlength=9 iopswriteratemaxlength=9 name=xxx displaytext=xxx disksize=1
{
"diskoffering": {
"created": "2020-01-13T21:37:38+0000",
"diskBytesReadRate": 1000,
"diskBytesReadRateMax": 1500,
"diskBytesReadRateMaxLength": 15,
"diskBytesWriteRate": 1000,
"diskBytesWriteRateMax": 1500,
"diskBytesWriteRateMaxLength": 15,
"diskIopsReadRate": 2000,
"diskIopsReadRateMax": 2500,
"diskIopsReadRateMaxLength": 9,
"diskIopsWriteRate": 2000,
"diskIopsWriteRateMax": 2500,
"diskIopsWriteRateMaxLength": 9,
"disksize": 1,
"displayoffering": true,
"displaytext": "xxx",
"id": "3920175d-ee3e-46d4-b25c-3d12fb040d25",
"iscustomized": false,
"name": "xxx",
"provisioningtype": "thin",
"storagetype": "shared"
}
}

I am going to invest some time today to dig into test_05_create_burst_type_disk_offering. Hope to have an update later today here @DaanHoogland :- )

@blueorangutan package

@GabrielBrascher a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✔centos7 ✔debian. JID-756

@blueorangutan test

@andrijapanicsb a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-926)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 31701 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3681-t926-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_vpc_vpn.py
Smoke tests completed. 79 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

@andrijapanicsb thanks for running the tests :)
@DaanHoogland it seems that test_05_create_burst_type_disk_offering has passed now after commit ae57e4d2e382aaf5c05c716a153b9cbcb2903790.

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✖centos7 ✖debian. JID-814

@blueorangutan package

@GabrielBrascher a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✖centos7 ✖debian.  I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✖centos7 ✖debian. JID-874

@blueorangutan package

@GabrielBrascher a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✖centos7 ✖debian. JID-898

@blueorangutan package

@GabrielBrascher a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✔centos7 ✔debian. JID-922

@weizhouapache @DaanHoogland are you ok with this PR?

@blueorangutan test matrix

@DaanHoogland a Trillian-Jenkins matrix job (centos7 mgmt + xs71, centos7 mgmt + vmware65, centos7 mgmt + kvmcentos7) has been kicked to run smoke tests

@blueorangutan test centos7 xenserver-71

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + xenserver-71) has been kicked to run smoke tests

Trillian test result (tid-1074)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 30195 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3681-t1074-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_loadbalance.py
Intermittent failure detected: /marvin/tests/smoke/test_privategw_acl.py
Smoke tests completed. 79 look OK, 1 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_02_vpc_privategw_static_routes
Failure
186.52
test_privategw_acl.py

test_03_vpc_privategw_restart_vpc_cleanup
Failure
181.45
test_privategw_acl.py

test_04_rvpc_privategw_static_routes
Failure
260.04
test_privategw_acl.py

Trillian test result (tid-1075)
Environment: vmware-65u2 (x2), Advanced Networking with Mgmt server 7
Total time taken: 34465 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3681-t1075-vmware-65u2.zip
Intermittent failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Smoke tests completed. 74 look OK, 1 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_02_vpc_privategw_static_routes
Failure
341.35
test_privategw_acl.py

test_03_vpc_privategw_restart_vpc_cleanup
Failure
334.95
test_privategw_acl.py

test_04_rvpc_privategw_static_routes
Failure
532.00
test_privategw_acl.py

Trillian test result (tid-1076)
Environment: xenserver-71 (x2), Advanced Networking with Mgmt server 7
Total time taken: 31420 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3681-t1076-xenserver-71.zip
Intermittent failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermittent failure detected: /marvin/tests/smoke/test_scale_vm.py
Smoke tests completed. 78 look OK, 2 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_02_vpc_privategw_static_routes
Failure
282.78
test_privategw_acl.py

test_03_vpc_privategw_restart_vpc_cleanup
Failure
237.73
test_privategw_acl.py

test_04_rvpc_privategw_static_routes
Failure
366.13
test_privategw_acl.py

test_01_scale_vm
Failure
26.81
test_scale_vm.py

Ping for review @rhtyd @svenvogel @nvazquez :slightly_smiling_face:
@weizhouapache @andrijapanicsb are you ok with the PR after addressing reviews?

@weizhouapache @wido I am fine with this and need a second ok

@DaanHoogland I am doing a small refactoring in this PR. I will update you soon (today). thanks for the reply.

@DaanHoogland @andrijapanicsb @weizhouapache @wido @svenvogel I have updated this PR. Thanks for all the feedback so far.

### Code Update ###
After digging around the configurations vm.disk.throttling.*, I found out that they were not the desired ones. Therefore, it was necessary to refactor the code. First I reverted a few commits and then implemented the validation with a new set of config keys.
The main goal of this PR is to check the length (seconds) of burst IOPS/Bytes. The vm.disk.throttling.* configs consider the rate (e.g. bytes read per second), not length (burst duration)
Before this refactoring the following parameters where being considered:
vm.disk.throttling.iops_read_rate
vm.disk.throttling.iops_write_rate
vm.disk.throttling.bytes_read_rate
vm.disk.throttling.bytes_write_rate

Current commit considers the following configurations:
vm.disk.bytes.maximum.read.length
vm.disk.bytes.maximum.write.length
vm.disk.iops.maximum.read.length
vm.disk.iops.maximum.write.length

Additionally, I removed a few checks that did not make much sense; also, I converted a bunch of if statements into a small and concise method that is called 4 times, making it easier to test and extend if necessary.
### Manual tests ###
Configuration when beginning the tests
vm.disk.bytes.maximum.read.length 	= 0
vm.disk.bytes.maximum.write.length 	= 0
vm.disk.iops.maximum.read.length 	= 0
vm.disk.iops.maximum.write.length 	= 0

iops_read_rate = 10000
iops_read_rate_max = 20000
iops_read_rate_max_length = 36000

iops_write_rate = 10000
iops_write_rate_max = 20000
iops_write_rate_max_length = 36000

bytes_read_rate = 10000
bytes_read_rate_max = 20000
bytes_read_rate_max_length = 36000

bytes_write_rate = 10000
bytes_write_rate_max = 20000
bytes_write_rate_max_length = 36000

Test 001
Input (tests via API with createDiskOffering command):
iops_read_rate = 10000
iops_read_rate_max = 20000
iops_read_rate_max_length = 36000
iops_write_rate = 10000
iops_write_rate_max = 20000
iops_write_rate_max_length = 36000
bytes_read_rate = 10000
bytes_read_rate_max = 20000
bytes_read_rate_max_length = 36000
bytes_write_rate = 10000
bytes_write_rate_max = 20000
bytes_write_rate_max_length = 36000

Expected result: create disk offering
Result: All good

Test 002
Input (via API):
Same as Test 001, except by:
bytes_write_rate_max_length = -1

Expected result: fail during disk offering creation due to bytes_write_rate_max_length = -1
Result: Error: (HTTP 431, error code 4350) Bytes Write max length (-1) must be a positive value

Test 003
Same as Test 001, except by:
iops_read_rate_max = 100

Expected result: fail during disk offering creation due to iops_read_rate (36000) > iops_read_rate_max (100)
Result: (HTTP 431, error code 4350) "IOPS Read rate (36000) cannot be greater than IOPS Read maximum rate (100)"

Test 003
Same as Test 001, except by:
vm.disk.bytes.maximum.read.length = 123
(dinamycally changed, does not require restart)

Expected result: fail due to bytes_read_rate_max_length (36000) > vm.disk.bytes.maximum.read.length = 123
Result: (HTTP 431, error code 4350) "Bytes read max length (36000 seconds) cannot be greater than vm.disk.bytes.maximum.read.length (123 seconds)"

Test 004
Same as Test 001, except by:
vm.disk.bytes.maximum.read.length = 99999999

Expected result: create disk offering
Result: All good

Test 005
Same as Test 001, except by:
vm.disk.iops.maximum.read.length = 39999

Expected result: fail due to bytes_read_rate_max_length (36000) > vm.disk.iops.maximum.read.length = 39999
Result: (HTTP 431, error code 4350) "IOPS read max length (36000 seconds) cannot be greater than vm.disk.iops.maximum.read.length (35999 seconds)"
Did a few more tests alternating the vm.disk.(*).length parameters

@blueorangutan package

@GabrielBrascher a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✔centos7 ✔debian. JID-964

MANUAL TEST
On global settings:
vm.disk.bytes.maximum.read.length = 0
vm.disk.bytes.maximum.write.length = 0
vm.disk.iops.maximum.read.length = 0
vm.disk.iops.maximum.write.length = 0

Testing via API

test 01
bytesreadrate=1000
bytesreadratemax=1000
bytesreadratemaxlength=2000
byteswriterate=1000
byteswriteratemax=1000
byteswriteratemaxlength=2000
iopsreadrate=1000
iopsreadratemax=1000
iopsreadratemaxlength=2000
iopswriterate=1000
iopswriteratemax=1000
iopswriteratemaxlength=2000

Expected result: create the offering
Result: All good

test 02
Same as test 01, except by:
bytesreadratemax=900

Expected result: fail during disk offering creation due to bytes_read_rate (1000) > bytes_read_rate_max (900)
Result:  Bytes Read rate (1000) cannot be greater than Bytes Read maximum rate (900)

test 03
Same as test 01, except by:
byteswriteratemax=900

Expected result: fail during disk offering creation due to bytes_write_rate (1000) > bytes_write_rate_max (900)
Result:  Bytes Write rate (1000) cannot be greater than Bytes Write maximum rate (900)

test 04
Same as test 01, except by:
iopsreadratemax=900

Expected result: fail during disk offering creation due to iops_read_rate (1000) > iops_read_rate_max (900)
Result:  IOPS Read rate (1000) cannot be greater than IOPS Read maximum rate (900)

test 05
Same as test 01, except by:
iopswriteratemax=900

Expected result: fail during disk offering creation due to iops_write_rate (1000) > iops_write_rate_max (900)
Result:  IOPS Write rate (1000) cannot be greater than IOPS Write maximum rate (900)
On global settings:
vm.disk.bytes.maximum.read.length = 2000
vm.disk.bytes.maximum.write.length = 2000
vm.disk.iops.maximum.read.length = 2000
vm.disk.iops.maximum.write.length = 2000

test 06
same as test 01, except by:
bytesreadratemaxlength=2001

Expected result: fail during disk offering creation due to bytes_read_rate_max_length (2001) >  vm.disk.bytes.maximum.read.length (2000)
Result: Bytes read max length (2001 seconds) cannot be greater than vm.disk.bytes.maximum.read.length (2000 seconds)

test 07
same as test 01, except by:
byteswriteratemaxlength=2001

Expected result: fail during disk offering creation due to bytes_write_rate_max_length (2001) >  vm.disk.bytes.maximum.write.length (2000)
Result: All good

test 08
same as test 01, except by:
iopsreadratemaxlegth=2001

Expected result: fail during disk offering creation due to iops_read_rate_max_length (2001) >  vm.disk.iops.maximum.read.length (2000)
Result: IOPS read max length (2001 seconds) cannot be greater than vm.disk.iops.maximum.read.length (2000 seconds)

test 09
same as test 01, except by:
iopswriteratemaxlegth=2001

Expected result: fail during disk offering creation due to iops_write_rate_max_length (2001) >  vm.disk.iops.maximum.write.length (2000)
Result: IOPS write max length (2001 seconds) cannot be greater than vm.disk.iops.maximum.write.length (2000 seconds)
The 'test 07' result is all good, except by: it should have failed
I requested some changes to fix this.

@blueorangutan package

@GabrielBrascher a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@GabrielBrascher from logic it looks good i think.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project cloud-engine-schema: Compilation failure -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]

what that for an jenkins error?

@svenvogel I checked the Jenkins stack and there are not many details. There is a compilation failure at project cloud-engine-schema. I will rebase this branch with the current master. Thanks for the ping.
The good news is that I could build it without any problem. @RodrigoDLopez also was able to build and test it.

@blueorangutan package

@GabrielBrascher a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✖centos7 ✔debian. JID-976

Packaging result: ✖centos6 ✖centos7 ✔debian. JID-977

@blueorangutan package

@GabrielBrascher a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✔centos7 ✔debian. JID-979

@blueorangutan test

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-1168)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 29506 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3681-t1168-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_diagnostics.py
Smoke tests completed. 80 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

@wido @weizhouapache @andrijapanicsb can we merge?

Trillian test result (tid-1222)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 28800 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3681-t1222-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_hostha_kvm.py
Smoke tests completed. 80 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

Hi @borisstoyanov , thanks for testing this PR. The global settings affect the following disk offering parameters:
bytesreadratemaxlength
byteswriteratemaxlength
iopsreadratemaxlength
iopswriteratemaxlength

The setup on global settings are according to the following parameters:
vm.disk.bytes.maximum.read.length = 0
vm.disk.bytes.maximum.write.length = 0
vm.disk.iops.maximum.read.length = 0
vm.disk.iops.maximum.write.length = 0

Quick resume on the length parameters. The verifications ensure that either Bytes or IOPS bursts cannot be greater than a configured value of those global settings variables.
Additionally, this PR checks the normal IOPS (write/read) ensuring that it cannot be higher than the respective maximum value (if the maximum has been set by the operator, otherwise, if null, it ignores the maximum).
Example of all parameters necessary to check if length (e.g. bytesreadratemaxlength) and normal (e.g. bytesreadrate) vs maximum (bytesreadratemax) are OK:

Bytes (read / right)

bytesreadrate, bytesreadratemax, bytesreadratemaxlength
byteswriterate, byteswriteratemax, byteswriteratemaxlength

IOPS (read / right)

iopsreadrate, iopsreadratemax, iopsreadratemaxlength
iopswriterate, iopswriteratemax, iopswriteratemaxlength

Therefore, the test that you presented should indeed accept the deploy as you have done (no length neither maximum IOPS/bytes have been configured via the disk offering command).
Once again, thanks for checking this PR, in case of any question just ping me.

2 x LGTM, tests passing fine.
Merging


fix: switch to using streams for prettification

We encountered an issue in pino-pretty where, if the --require argument is used, the required file will be loaded twice. This can cause some weird and unexpected issues. We raised a bug with pino-pretty here: https://github.com/pinojs/pino-pretty/issues/478
Switching to using pino-pretty as a stream resolves this issue.

Discovered from this PR where we're exploring open Telemetry and AWS X-ray: #https://github.com/Financial-Times/dotcom-debug-user/pull/196


doesn't ionic view  include crosswalk - chromium?

When webview is not an option, you probably use crosswalk either for performance or functional reasons.
After uploading my app to ionic view, I see it's not working at all.
2 questions:

If i set my app to use crosswalk, it will load the engine in ionic view?
Is it possible to debug the app running in ionic view with chrome remote debugging? sorry I've not tried yet.

Thanks,
Ivan.

Greetings @isaldarriaga!
My sensors indicate that you need to update your issue through our custom issue form. We are now requiring all issues to be submitted this way, to ensure that we have all of the information necessary to fix them as quickly as possible.
Click Here To Update Your Issue
I will have no choice but to close this issue if it is not resubmitted through the form. Please fill out the rest of the form, so that I may use my friendly robot powers to assist you.
Thank you!

This issue was moved to driftyco/ionic-view#55

This issue was moved to driftyco/ionic-view-issues#88


Remove duplicate dependencies for pom.xml.

Below is the removed duplicate dependencies check list：

soul-web/pom.xml:   				soul-plugin-api
soul-plugin/soul-plugin-base: 		soul-common
soul-metrics/soul-metrics-facade:	soul-spi & soul-metrics-spi
soul-plugin-monitor:				soul-spi & soul-metrics-prometheus

This is the current component dependencies diagram:

I removed the dependency represented by the red line. After removed duplicate dependencies:

Codecov Report

Merging #1018 (01a54da) into master (b658639) will decrease coverage by 0.43%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #1018      +/-   ##
============================================
- Coverage     74.04%   73.60%   -0.44%
+ Complexity     2014     2009       -5
============================================
  Files           351      351
  Lines          7745     7745
  Branches        849      849
============================================
- Hits           5735     5701      -34
- Misses         1578     1619      +41
+ Partials        432      425       -7

Impacted Files
Coverage Δ
Complexity Δ

...soul/client/sofa/SofaServiceBeanPostProcessor.java
20.96% <0.00%> (-41.94%)
5.00% <0.00%> (-2.00%)

...soul/client/tars/TarsServiceBeanPostProcessor.java
28.76% <0.00%> (-17.81%)
8.00% <0.00%> (-2.00%)

.../soul/plugin/httpclient/NettyHttpClientPlugin.java
57.14% <0.00%> (-2.05%)
10.00% <0.00%> (ø%)

.../soul/admin/service/impl/UpstreamCheckService.java
76.81% <0.00%> (-1.45%)
14.00% <0.00%> (-1.00%)

...elimiter/handler/RateLimiterPluginDataHandler.java
74.13% <0.00%> (ø)
12.00% <0.00%> (ø%)

...omara/soul/sync/data/http/HttpSyncDataService.java
72.54% <0.00%> (+6.86%)
12.00% <0.00%> (ø%)

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 b658639...01a54da. Read the comment docs.

Codecov Report

Merging #1018 (01a54da) into master (b658639) will decrease coverage by 0.43%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #1018      +/-   ##
============================================
- Coverage     74.04%   73.60%   -0.44%
+ Complexity     2014     2009       -5
============================================
  Files           351      351
  Lines          7745     7745
  Branches        849      849
============================================
- Hits           5735     5701      -34
- Misses         1578     1619      +41
+ Partials        432      425       -7

Impacted Files
Coverage Δ
Complexity Δ

...soul/client/sofa/SofaServiceBeanPostProcessor.java
20.96% <0.00%> (-41.94%)
5.00% <0.00%> (-2.00%)

...soul/client/tars/TarsServiceBeanPostProcessor.java
28.76% <0.00%> (-17.81%)
8.00% <0.00%> (-2.00%)

.../soul/plugin/httpclient/NettyHttpClientPlugin.java
57.14% <0.00%> (-2.05%)
10.00% <0.00%> (ø%)

.../soul/admin/service/impl/UpstreamCheckService.java
76.81% <0.00%> (-1.45%)
14.00% <0.00%> (-1.00%)

...elimiter/handler/RateLimiterPluginDataHandler.java
74.13% <0.00%> (ø)
12.00% <0.00%> (ø%)

...omara/soul/sync/data/http/HttpSyncDataService.java
72.54% <0.00%> (+6.86%)
12.00% <0.00%> (ø%)

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 b658639...01a54da. Read the comment docs.