Improve how agent rpc server handles requests

This PR has following improvements:

RpcServer is now pool of actors
WebsocketClient is passed to RpcServer actor and actor is called with async
ServicePod requests return only after they have completed
server can wait request to finish (no polling)
wait for port functionality has been moved to agent side

The agent Kontena::ServicePods::Creator doesn't return a Docker::Container on errors:
kontena-agent | E, [2017-01-26T13:38:19.798077 #1] ERROR -- Kontena::ServicePods::Creator: Docker::Error::NotFoundError: Get https://registry.development.kontena.local/v1/_ping: dial tcp: lookup registry.development.kontena.local: no such host
kontena-agent |
kontena-agent | E, [2017-01-26T13:38:19.798139 #1] ERROR -- Kontena::ServicePods::Creator: /usr/lib/ruby/gems/2.3.0/gems/docker-api-1.32.1/lib/docker/connection.rb:46:in `rescue in request'
...
kontena-agent | /app/lib/kontena/service_pods/creator.rb:168:in `ensure_image'
kontena-agent | /app/lib/kontena/service_pods/creator.rb:27:in `perform'
kontena-agent | /app/lib/kontena/rpc/service_pods_api.rb:16:in `create'
kontena-agent | /app/lib/kontena/rpc_server.rb:39:in `handle_request'
...

which explodes the RPC handler:
kontena-agent | E, [2017-01-26T13:38:19.798861 #1] ERROR -- Kontena::RpcServer: NoMethodError: undefined method `id' for true:TrueClass
kontena-agent | E, [2017-01-26T13:38:19.798915 #1] ERROR -- Kontena::RpcServer: /app/lib/kontena/rpc/service_pods_api.rb:18:in `create'
kontena-agent | /app/lib/kontena/rpc_server.rb:39:in `handle_request'
kontena-agent | /usr/lib/ruby/gems/2.3.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `public_send'
kontena-agent | /usr/lib/ruby/gems/2.3.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `dispatch'
kontena-agent | /usr/lib/ruby/gems/2.3.0/gems/celluloid-0.17.3/lib/celluloid/call/sync.rb:16:in `dispatch'
kontena-agent | /usr/lib/ruby/gems/2.3.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:50:in `block in dispatch'
kontena-agent | /usr/lib/ruby/gems/2.3.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:76:in `block in task'
kontena-agent | /usr/lib/ruby/gems/2.3.0/gems/celluloid-0.17.3/lib/celluloid/actor.rb:339:in `block in task'
kontena-agent | /usr/lib/ruby/gems/2.3.0/gems/celluloid-0.17.3/lib/celluloid/task.rb:44:in `block in initialize'
kontena-agent | /usr/lib/ruby/gems/2.3.0/gems/celluloid-0.17.3/lib/celluloid/task/fibered.rb:14:in `block in create'

The Kontena::ServicePods::* should probably just let their errors propagate, instead of trapping and swallowing them?

BTW, this should continue with some server work to report the deploy errors back to the CLI.
E, [2017-01-26T15:56:12.779525 #26388] ERROR -- GridServiceInstanceDeployer: failed to deploy service instance development/whoami/whoami-2 to node core-02
E, [2017-01-26T15:56:12.779588 #26388] ERROR -- GridServiceInstanceDeployer: Docker::Error::NotFoundError: Get https://registry.development.kontena.local/v1/_ping: dial tcp: lookup registry.development.kontena.local: no such host

CLI output is not helpful:
$ kontena service deploy whoami/whoami
 [fail] Deploying service whoami/whoami
 [error] halting deploy of development/whoami/whoami, one or more instances failed

@SpComb ping


763 scgpt split data

Changelog
Data splitting helper functions added under utils. Possible to split data 2way or 3way.
Issue ticket number and link
Closes #763
Checklist before requesting a review

[x] I have performed a self-review of my code

[ ] Conforms to the Contributor's guide

Check the correct box. Does this PR contain:

[ ] Breaking changes
[x] New functionality
[ ] Major changes
[ ] Minor changes
[ ] Documentation
[ ] Bug fixes

[ ] Proposed changes are described in the CHANGELOG.md

[ ] CI tests succeed!

A couple of files ended up in this branch from resolving merge issues in the past, but they are outdated now. The evaluate and preprocessing scripts are not needed by this component :-)

@jakubmajercik The tests are failing, could you have a look?

Should be fixed now :) I also made a standalone component out of it to be used with other tools.


29 integrate calendar events

closes #29
I saw the calendar /event cards after I created the event detail etc. But I figured we can migrate later into the existing templates.

I plugged in fullcalendar.io on the front end to display events, click on the even and it will take you to the detail page.

@dawnwages  check this out:

added color coding to the calendar page (pending is hidden, canceled is grey, rescheduled is orange, and scheduled is default blue)
order by start time
improved django admin for adding users/speakers/categories/organizers
added RSVP button:

register for non authenticated users
disabled RSVP button for users that haven't accepted CoC
Cancel RSVP button for folks who have already RSVPed

added speaker photo, bio, and contacts below the details page
Check out the video:

https://www.loom.com/share/620a6ff0cb124be682b35bfdaa358d43


Mention DartSass

This is so cool improvement that they will make everything in Dart from scratch.
Btw. do you know what will happened with libsass? I only know they will abandon the Ruby version in favor of the Dart version for sure.

LibSass will still be maintained. :)

LibSass is behind DartSass.

LibSass is deprecated since 2020: https://sass-lang.com/blog/libsass-is-deprecated.
Any mention of LibSass, ruby-sass, sacss, node-sass… must be removed from guidelines.
Sass-Compatibility table doesn't seem useful anymore.


[BUG] When new user joins he sees all "invisible" channel

Hey
I created a Server with your bot it works perfectly!
But when I invite a new user (registered or without an account)
in the Browser and Android Version of Discord the new user sees all the Text Channels
After going through the voice channels the normal behaviour returns as intended by your bot
The channels are not in the nexus Categorie anymore
Any Ideas
Thanks for your Help :)

Hello @tilli123.
Glad you liked it =)
I got the issue, will check it out later myself.
If you need a quick workaround before I try to reproduce it: check permissions that are set for the text channels - make sure that 'Read Messages' permission for '@everyone' is denied (X mark).
It's ok to move text channels to the other categories - bot functionality does not require them to be in a specific category, it just creates it in one spot as a default, most-likely-needed scenario. Feel free to move/rename them however you like.
But, there's a catch - if you move text channel to a different category, channel's permissions can sync with the category's permissions, which will remove the required state of 'Read Messages' permission for '@everyone'. No problem here, just double-check it and you should be fine.
Again, I will check it myself just to be clear and I will come back to you.
If this workaround works for you, please respond in this discussion so I know how everything is going.
Best regards

Hello @tilli123.
Glad you liked it =)
I got the issue, will check it out later myself.
If you need a quick workaround before I try to reproduce it: check permissions that are set for the text channels - make sure that 'Read Messages' permission for '@everyone' is denied (X mark).

When I do that the normal user can't see it anymore when joining the voice channel. But maybe I am doing something wrong

It's ok to move text channels to the other categories - bot functionality does not require them to be in a specific category, it just creates it in one spot as a default, most-likely-needed scenario. Feel free to move/rename them however you like.

Good to know, I just moved them to another category

But, there's a catch - if you move text channel to a different category, channel's permissions can sync with the category's permissions, which will remove the required state of 'Read Messages' permission for '@everyone'. No problem here, just double-check it and you should be fine.
Again, I will check it myself just to be clear and I will come back to you.
If this workaround works for you, please respond in this discussion so I know how everything is going.

No need rush thank you very much for your help


check infranken.de links from FB

null reference error, fixed by commit https://github.com/MSiccDev/LinkTools/commit/1ae3069c6a77ce97d6e12bade7f4f9d4c2f2818d

well, they are working right now. closing.


[CI:DOCS] Fix readthedocs link

Touch up the link to the docs on readthedocs.  Using the fully
specified link like this will cause a CORS issue in many browsers.
Plus we're working on a Spanish variant of the site, so we probably
should point to the English variant.
Signed-off-by: TomSweeneyRedHat<EMAIL_ADDRESS>

LGTM

/lgtm


[BUG] Sound playing on startup

Describe the bug
Even after having the Skip first 'select' sound on startup option checked in the Playnite Sounds Mod's addon settings. The sound still plays on each launch. I have to manually go into the game description and pause the sound from the sound controls at the bottom.
To Reproduce
I have the startpage addon, so that you know, and I have to click Playnite out of focus to pause the sound and sometimes even that doesn't work.
Expected behavior
The last selected game page's sound should not play on startup
Additional context
Also after startup, playnite's extensions load various processes and maybe download things in the foreground, like the steam tags extension, HowLongToBeat and more......

https://github.com/ashpynov/PlayniteSound/releases/tag/v5.7.16

Thank you, the issue is now fixed.


Document arguments given to onSubmit handler?

I was having problems figuring out how to use props when submitting forms, in the end, by going to the source code I figured out that since v5.3.3 the onSubmit handler gets the props as argument. Super usefull! But not documented?
Maybe we could list the arguments in the following docs section?
http://redux-form.com/6.0.2/docs/api/ReduxForm.md/#-onsubmit-function-optional-

There are some details here http://redux-form.com/6.0.2/docs/api/Props.md/#-handlesubmit-eventorsubmit-function- too

It actually gets (values, dispatch, props). I was interested myself in dispatch.

This was documented some time ago!


log files of tools are stored repeatedly

for example,
$ tree output/logs
output/logs
├── C5-arja-defects4j-Chart-1-c2e0be1d
│   ├── C5-arja-1-output.log
│   └── logs
│       ├── C5-arja-1-output.log
│       └── logs
│           └── C5-arja-1-output.log
├── C5-cardumen-defects4j-Chart-1-a08ad419
│   ├── C5-cardumen-1-output.log
│   └── logs
│       ├── C5-cardumen-1-output.log
│       └── logs
│           └── C5-cardumen-1-output.log
...

C5-arja-1-output.log and logs/C5-arja-1-output.log are the same, while logs/logs/C5-arja-1-output.log has fewer lines. Ditto cardumen.

Thanks for creating the issue, I will look into it.
In the meantime if you have a fix, would be great if you can submit a PR

Fixed in commit b2bc16f4


Update to latest version of AFNetworking

Currently podspecs require 2.5.4 version of AFNetworking while latest version is 3.0.4

This library is being deprecated shortly. Stay tuned for updated Swift library.

VimeoUpload replaced this library.


Token-Request flow is not working when using Google "high-level" classes

From<EMAIL_ADDRESS>on November 07, 2012 00:27:31
Version of google-oauth-java-client (e.g. 1.5.0-beta)? 1.12.0-beta Java environment (e.g. Java 6, Android 2.3, App Engine)? Java 6 Describe the problem. In case that I wanna use the "high-level" classes, such as AuthorizationCodeFlow and TokenRequest, the token-request flow is not working.
I was trying to run the example here ( https://code.google.com/p/google-oauth-java-client/wiki/OAuth2 - the main Wiki page), and the code is wrong from several reason:

authorize flow: the code is not running since I get exception that SCOPES is missing. So I've added "scope" to my request by 						.setScopes("read")
token-request:
2.a. same error on the scopes, even though when asking for a token there should be no scope in the request.
2.b. the client-id and client-secret are not passed in the request, so I keep getting "400: invalid-request" How would you expect it to be fixed? fixes need to be done in the high-level classes such AbstractAuthorizationCodeServlet, AbstractAuthorizationCodeCallbackServlet
and most important: TokenRequest must be fixed so the client-id and client-secret will be passed in the request, and omit "scope" from the request.

Original issue: http://code.google.com/p/google-oauth-java-client/issues/detail?id=59

@wonderfly How I request for ID_TOKEN after getting access token from using AbstractAuthorizationCodeServlet, AbstractAuthorizationCodeCallbackServlet?

I imported these old issues from another issue tracker with my own credentials so all comments have me as the owner. But please note that the first line of every comment points to the original author.
Anyway, you can ping @ejona or @anthmgoogle on auth related questions.

@ejona86 @anthmgoogle  How I request for ID_TOKEN after getting access token from using AbstractAuthorizationCodeServlet, AbstractAuthorizationCodeCallbackServlet?

I can no longer find any Google examples that are missing the setScopes call when setting up an AuthorizationCodeFlow


LogRestores table schema

The LogRestores table currently has no defined clustered index or primary key.  It should have a primary key on DatabaseID.  It might be worth including the InstanceID column for improved performance.

Included in 2.50.0


Passing arguments to hook to perform basic auth

Hello! I am working on a solution where I use scrapy to crawl through several levels of a website and crawl4AI to extract the content. Currently, I need to support basic authentication and I am trying a solution with hooks (already found something similar in the issues section here).
I have this hook that should receive a username and password in the parameters.
import asyncio
from crawl4ai import AsyncWebCrawler
from crawl4ai.async_crawler_strategy import AsyncPlaywrightCrawlerStrategy
from playwright.async_api import Page, Browser, BrowserContext

async def before_goto(page, **kwargs):
    # kwargs might contain original_url and session_id etc.
    # Store original_url somewhere if needed, or print
    await page.set_extra_http_headers({'Authorization': #Create Base64 with username:password})

and this is the code that calls the hook:
import base64
from typing import Any, AsyncIterator
from urllib.parse import urlparse

from crawl4ai import AsyncWebCrawler, CacheMode, CrawlResult
from crawl4ai.async_crawler_strategy import AsyncPlaywrightCrawlerStrategy
from scrapy.crawler import Crawler
from scrapy.http import Request
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from playwright.async_api import Page, Browser, BrowserContext

from common.connector import IndexableContent
from connectors.webcrawler.args import WebCrawlerConnectorArgs
from connectors.webcrawler.basic_auth import BasicAuth
from connectors.webcrawler.scrapy_webcrawler.scrapy_webcrawler.hooks import before_goto

class WebCrawlerSpider(CrawlSpider):
    name = "webcrawler"

    rules = (Rule(LinkExtractor(), callback="parse_item", follow=True),)

    def __init__(
        self,
        connector_args: WebCrawlerConnectorArgs,
        documents: list[IndexableContent],
        *args,
        **kwargs,
    ):
        super().__init__(*args, **kwargs)
        # If start_urls empty, quit (?)
        self.start_urls = (
            connector_args.urls
            if connector_args.urls
            else []
        )
        self.allowed_domains = self.extract_domains(connector_args.urls)
        self.documents: list[IndexableContent] = documents
        self.authentication = connector_args.authentication
        if isinstance(self.authentication, BasicAuth):
            self.http_user = self.authentication.username
            self.http_auth_domain = None
            self.http_pass = self.authentication.password

    @classmethod
    def from_crawler(
        cls,
        crawler: Crawler,
        connector_args: WebCrawlerConnectorArgs,
        documents: list[IndexableContent],
        *args: Any,
        **kwargs: Any,
    ) -> "WebCrawlerSpider":
        crawler.settings.set("CRAWLSPIDER_FOLLOW_LINKS", connector_args.crawl_depth > 0)
        spider = super().from_crawler(
            crawler, connector_args, documents, *args, **kwargs
        )
        spider.settings.set(
            "DEPTH_LIMIT",
            connector_args.crawl_depth,
            priority="spider",
        )
        spider.settings.set(
            "ITEM_PIPELINES",
            {
                "scrapy_webcrawler.scrapy_webcrawler.pipelines.ScrapyWebcrawlerPipeline": 300,
            },
        )
        spider.settings.set(
            "TWISTED_REACTOR",
            "twisted.internet.asyncioreactor.AsyncioSelectorReactor",
        )
        return spider

    def extract_domains(self, urls: list[str]) -> list[str]:
        """
        Extracts domains from a list of URLs.

        Args:
            urls (list[str]): A list of URLs.

        Returns:
            list[str]: A list of domains extracted from the URLs.
        """
        domains = []
        for url in urls:
            parsed_url = urlparse(url)
            if parsed_url.netloc:
                domain = parsed_url.netloc
                # Remove 'www.' only if it is at the start of the domain
                if domain.startswith("www."):
                    domain = domain[4:]
                domains.append(domain)
        return domains

    def parse_start_url(self, response):
        return self.parse_item(response)

    async def parse_item(self, response) -> AsyncIterator[IndexableContent]:
        # Extract to method
        # We need to put a domain here, of the basic auth website, with multiple start_urls this becomes confusing
        crawl_result = await self.process_url(response.url)
        document = IndexableContent(
            identifier="id1",
            content=str(crawl_result.markdown),
            title="title",
            url=response.url,
            metadata={},
        )
        self.documents.append(document)
        yield document

    def start_requests(self):
        for url in self.start_urls:
            yield Request(url=url)

    async def process_url(self, url) -> CrawlResult:
        crawler_strategy = AsyncPlaywrightCrawlerStrategy(verbose=True,)
        crawler_strategy.set_hook('before_goto', before_goto)
        await crawler_strategy.execute_hook('before_goto', //Pass here the username and password)
        async with AsyncWebCrawler(verbose=True, crawler_strategy=crawler_strategy) as crawler:
            return await crawler.arun(
                url=url,
                cache_mode=CacheMode.BYPASS,
                exclude_external_links=True,
                exclude_social_media_links=True,
            )

The main problem here is that I don't know how to obtain the page parameter. Can you help me here? Also, is this the correct way to support basic auth? Thank you in advance

@luisferreira93 Thanks for using Crawl4ai. I have a few things to explain to make the job easier for you. Before I explain, I want to let you know that we will release our scraping module very soon. It is under review and will provide a lot of efficiency. I definitely suggest you use this for scraping. Now, back to your questions; I will add some explanations and show you some code examples for more clarity.
Let me address your questions and suggest some improvements to make your code more efficient:

Hook Selection: Instead of using before_goto, I recommend using the on_page_context_created hook for setting authentication headers. This hook is more appropriate as it's called right after a new page context is created, ensuring your headers are set up properly.

Browser Instance Management: Currently, you're creating a new crawler instance for each URL. This is inefficient as it involves starting and stopping the browser repeatedly. Let's improve this by creating the crawler once and reusing it.

Here's an improved version of your code:
class WebCrawlerSpider(CrawlSpider):
    def __init__(self, connector_args, documents, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.start_urls = connector_args.urls if connector_args.urls else []
        self.allowed_domains = self.extract_domains(connector_args.urls)
        self.documents = documents
        self.authentication = connector_args.authentication

        # Set up the crawler strategy with authentication
        async def on_page_context_created(page, **kwargs):
            if isinstance(self.authentication, BasicAuth):
                credentials = base64.b64encode(
                    f"{self.authentication.username}:{self.authentication.password}".encode()
                ).decode()
                await page.set_extra_http_headers({
                    'Authorization': f'Basic {credentials}'
                })

        self.crawler_strategy = AsyncPlaywrightCrawlerStrategy(verbose=True)
        self.crawler_strategy.set_hook('on_page_context_created', on_page_context_created)
        self.crawler = AsyncWebCrawler(
            verbose=True,
            crawler_strategy=self.crawler_strategy
        )

    async def spider_opened(self):
        """Initialize crawler when spider starts"""
        await self.crawler.start()

    async def spider_closed(self):
        """Clean up crawler when spider finishes"""
        await self.crawler.close()

    async def process_url(self, url) -> CrawlResult:
        return await self.crawler.arun(
            url=url,
            cache_mode=CacheMode.BYPASS,
            exclude_external_links=True,
            exclude_social_media_links=True,
        )

Key improvements in this code:

Better Hook: Using on_page_context_created instead of before_goto ensures headers are set immediately after a page context is created.

Efficient Browser Management: The crawler is created once in __init__ and managed through spider_opened and spider_closed. This prevents the overhead of creating/destroying browser instances for each URL.

Clean Authentication: The authentication logic is encapsulated in the hook function, making it cleaner and more maintainable.

To use this code, you don't need to manually execute the hook or worry about the page parameter - the crawler strategy will handle that for you. The hook will be called automatically with the correct page instance whenever a new page context is created.
For example usage with explicit lifecycle management:
# Initialize the spider
spider = WebCrawlerSpider(connector_args, documents)

# Start the crawler
await spider.spider_opened()

try:
    # Process URLs
    for url in spider.start_urls:
        result = await spider.process_url(url)
        # Handle result...
finally:
    # Clean up
    await spider.spider_closed()

This approach is much more efficient as it:

Reuses the browser instance across multiple URLs
Properly manages resources
Handles authentication consistently
Integrates well with Scrapy's lifecycle

Let me know if you need any clarification or have questions about implementing these improvements!


Crash on MC load

crash-2019-11-02_12.05.57-client.txt
Describe the bug
Sudden crash on load
To Reproduce
Try to load minecraft
Additional context
No idea why is started doing so, i dont remember adding/remove mods or tweaking configs
Mods List
mods in crashlog

Please use pastebin for error logs and stack traces.

Here: https://pastebin.com/HXR684TU (I don't understand the difference)

Uploading the file makes us devs need to download it. We don't like downloading random files, so we prefer to be able to view the content on a third part site.

Duplicate of #290. Update Dynamic Trees to 0.9.6.


Denying access to wallet for websites does not work

Summary
When connecting your wallet to website such as Anchor, Mirror, or Spectrum, the "Deny" option doesn't actually work. It enters the user into a loop of popups where the choice to deny doesn't seem to actually be registered in the extension (only in the popup window itself).
Expected
If a user clicks "Deny" for access to their wallet, the popup should close (not another be spawned) and the interaction should be complete. The user should be able to access their wallet and use all of the regular functionality after clicking deny.
Environments

Stage: Terra station wallet (Chrome extension) version 1.8.1
Chain: Mainnet
OS: macOS High Sierra
Platform: Chrome Version 91.0.4472.114 (Official Build) (x86_64)

Reproduce

Visit a website that you can connect your wallet to like Anchor, Mirror, Spectrum
Click "Connect wallet"
There will be a popup that offers you the choice of accepting or denying access to your wallet. Click "Deny".
Another popup will be displayed, click "Deny"
Now you're in a loop where if you click "Deny", the popup goes blank and you can't access other features in the extension.

There is a way to exit this loop:

Go to chrome://extensions and disable the extension.
Re-enable the extension
You should see the same "Accept/Deny" popup again, but denying it actually works this time.
You now have access to your wallet and all the features.

@simcheolhwan can you check this out?

244c33c solved this


ARO support lifecycle document modification required

ARO version 4.12 support EOL changed from October 19, 2024 to July 17 2024 to align with OCP updates:

[0]https://learn.microsoft.com/en-us/azure/openshift/support-lifecycle#azure-red-hat-openshift-release-calendar
[1]https://access.redhat.com/support/policy/updates/openshift

the important column in [0] shows below statement:
Starting with ARO version 4.12, the support lifecycle for new versions will be set to 14 months from the day of general availability.

Request:
This is causing confusion in customers and they complained below:
This document is so confusing for customer .
if [July 17 2024] is correct ,could you please request concerned team to change [14 months]description
if [October 19, 2024 ]is correct , could please update the date in the public document.

please help delete the [14 months] description if possible.
if not possible to rectify [14 months] column can we add some explanation to why 4.12 GA and EOL is showing 11 months in between.

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

ID: 0119bc23-6b1e-2e7f-7d32-91f413a783b2
Version Independent ID: 22ea356d-74a0-a918-fa4f-ae707234e1bb
Content: Azure Red Hat OpenShift support lifecycle - Azure Red Hat OpenShift
Content Source: articles/openshift/support-lifecycle.md
Service: azure-redhat-openshift
GitHub Login: @joharder
Microsoft Alias: joharder

@QQHollyGit
Thanks for bringing this to our attention.
I'm going to assign this to the document author so they can take a look at it accordingly.

@AjayBathini-MSFT
any update please?

Hello, let me jump into this. There seems to be a mistake in the table.
ARO4.14 Upstream release date should be October 2023 rather than October 2024. (it's future)

The date being incorrect is fixed in https://github.com/MicrosoftDocs/azure-docs/pull/122465
We are working on updating the docs and table to be more clear about the dates. There will be a minimum of 14 months from the time the version is available as an upgrade. Which is some time before it is available as an installable version.

Do you have any updates?

Sorry for the delay on this. We hope to have this published next week.

This issue was addressed, closing for now. Please let us know if this update wasn't what you were looking for.
#please-close


🔧 Fix dialyzer specs

My company project is failing with has no local return
error. After isolating the problem, the source was
the Scheduler.get_{next/previous}_run_date.
The first suspcicious is get_{next/previous}_run_date could
raise an explicit exception, but the specs says no.
Also, the private functions are all covered with specs, it's not
necessary. Since you add a spec in a public, and dialyzer
will check the private ones respects the public. I think
these privates specs was misleading Dialyzer.
This fix might not be 100% backward compatible, but it respects more
the documented specs.
Let me know what you think.

Coverage remained the same at 100.0% when pulling fee5693ef9516bac57d6742735595e0bd6ada801 on ulissesalmeida:ua-fix-dialyzer-specs into 4f6c85f5222ad8047359eace0ba0e5c7a49104aa on jshmrtn:master.

Coverage remained the same at 100.0% when pulling fee5693ef9516bac57d6742735595e0bd6ada801 on ulissesalmeida:ua-fix-dialyzer-specs into 4f6c85f5222ad8047359eace0ba0e5c7a49104aa on jshmrtn:master.

Coverage remained the same at 100.0% when pulling fee5693ef9516bac57d6742735595e0bd6ada801 on ulissesalmeida:ua-fix-dialyzer-specs into 4f6c85f5222ad8047359eace0ba0e5c7a49104aa on jshmrtn:master.

Thanks @ulissesalmeida for the PR.
I'm not sure though that I like all of the changes. The Typespecs on the private functions are actually wanted. If they're wrong, it'd be good to correct them instead.
Why did you replace the maybe type?

BTW: has no local return says that dialyzer thinks that a function will never return in any case. The raise should only trigger that warning if it thinks that this is the only code-path it could take.
We'll also have to remove the breaking change. I'm not planning on doing a major update solely based on this change.

How did you call the library? The following code yields no dialyzer errors:
defmodule Test do
  import Crontab.CronExpression

  def test do
    Crontab.Scheduler.get_next_run_date(~e[*]e)
  end

  def test2 do
    for date <- Crontab.Scheduler.get_next_run_dates(~e[*]e) do
      IO.inspect(date)
    end
  end
end

@maennchen I'll give you more details soon.

Hey sorry for bothering you.
Actually, I think my problem was some weird caching of Dialyzer, I nuked everything and tried again from scratch and worked fine. Then you can ignore this PR 😆
The problem of maybe, in other languages means just something or empty/nil.
Here, maybe usage reminds me of the either, for example either(:ok, :error). In erlangs/elixir specs, either can be translated to |. Then we could write as :ok | :error.
Another thing that I didn't like that much was the any for error reason. It's too generic, in these functions we know what can be returned(is String.t() or exception.
About the private specs, no strong feelings. If you like it, I can put it back.
But actually, there's no bug here. But if you want these improvements, let me know. I can reopen the PR removing the stuff you didn't like it.

@ulissesalmeida No worries, thanks anyways!
You're right about the maybe naming. I should probably change it to result as well. (Like result in Rust...)
Also, the any in the error case could be more specific.
I'd be interested in a PR that addresses those two issues.


Could not expand table lists or view lists.

Azure Data Studio Version: 1.12.2

Steps to Reproduce:

Click Data Explorer then choice the Database.
Expand Tables, Views or etc

When I clicked expanding button that shows Azure Data Warehouse's folders which have tables and views lists, the following error massage occurred
"Failed to retrieve data for this request."
On the other hand, If I do the very same action with SQL Server Management Studio,
it works right. That means SSMS shows me the lists of tables or views .
Here is a jpeg image file which shows my problem.
I want to know how to solve this problem but I don't want to open Azure Data Studio with administrator permission.

Still, I can not solve this problem.

Closing as stale issue


Change satisfies_template to does_not_satisfy_template

This value is currently only guaranteed to be set when it's value is false, which means that true for the UI is either true or undefined.  This makes for awkward comparisons.  Changing the value to always be set when the value is true would simplify comparisons in the UI.
Always returning a value (true/false) for satisfies_template would also work.

Related frontend issue: https://github.com/flywheel-io/frontend/issues/666

@nagem We closed the dependent frontend ticket. Ok to close this one?


Refactor rotate command

Refactor the 'rotate' command.

Fixes #47

Already being addressed.

@MorrisLaw Thanks anyway 👍


Parse-time hashing syntax

Currently only a proof-of-concept with JOAAT being the only hashing algorithm available

A better & more generic syntax for parse-time evaluation:
$crypto.joaat("Pluto")


gpstime 0.04: Fix shown UTC time zone sign

Like for example at comms.js, the getTimezoneOffset() return value must be inverted to get correct time zone.

Great - thank you!


Remove explicit flush

Remove uneeded explicit flush

Coverage decreased (-0.02%) to 78.415% when pulling 18f78914bb61af020c9cd862520b0a4fa0298cfb on remove/sync-all into 1ff007f5f67df28ef5a42ce8bfb47ccb94b6f191 on develop.


WIP: Rake task for bulk ingest

If this is something we're gonna support in any sort of ongoing fashion I'd like to extract the processing to a class and add some specs

OK, I'll do that — I was thinking about refactoring the METS and PULFA background jobs to reduce the amount of duplicative ingest code too, so I might tackle that.

Coverage remained the same at 100.0% when pulling dfd22925c56d3b481b645786695ce032d262d270 on bulk-ingest into 3389c2cc95bce0d2b079eeb9374e695938465a51 on master.

Coverage remained the same at 100.0% when pulling 2d14a72fffba834490a64f2ca4b844e3cb6cc70d on bulk-ingest into 3389c2cc95bce0d2b079eeb9374e695938465a51 on master.

TODO: pull out key book/geo configuration points into their own methods (see https://github.com/pulibrary/plum/issues/1101#issuecomment-287079408).

Coverage remained the same at 100.0% when pulling 7e9a3307706ec7f8e4f84fff714271d5c8a6dee2 on bulk-ingest into 9dd06b8f8a04533848b0727f0dd90079a5993d38 on master.

Coverage remained the same at 100.0% when pulling 7e9a3307706ec7f8e4f84fff714271d5c8a6dee2 on bulk-ingest into 9dd06b8f8a04533848b0727f0dd90079a5993d38 on master.

This looks good to me. Still WIP?

Nope, I think it's ready!


Add Bootstrap Vue

BOOTSTRAP VUE
Bootstrap Vue
Description
With more than 85 components, over 45 available plugins, several directives, and 1000+ icons, BootstrapVue provides one of the most comprehensive implementations of the Bootstrap v4.5 component and grid system available for Vue.js v2.6, complete with extensive and automated WAI-ARIA accessibility markup.
Link to the vector file, preferably from an official source
Bootstrap Vue.
Alternative

Hey @CelsonF
Thanks for your contribution but I don't add derivative icons (React Bootstrap, Vue Bootstrap, etc)
👍🏻


unable to store value of json RPC

HI I am fetching an api call.
I am able to print jsonrpc in cosole log but unable to save it as a variable.
please help

provide at least least least the console output  :laughing:


Analyzer library crashes on test 0.12.28

From @dustyholmes-wf on November 20, 2017 15:28
After the release of 0.12.27 I started experiencing a dartdoc failure in a private project containing test utilities.
The issue is resolved if I require <=0.12.26
Relevant dependencies:

analyzer 0.30.0+4
dartdoc 0.14.1
test 0.12.28

Generation failed: AnalysisException: Cannot compute LIBRARY_ELEMENT for lib/automation.dart
Caused by Unexpected exception while performing ResolveUnitTypeNamesTask for source /Users/dusty/.pub-cache/hosted/pub.dartlang.org/test-0.12.28/lib/src/backend/invoker.dart
#0      AnalysisTask._safelyPerform (package:analyzer/task/model.dart:333)
#1      AnalysisTask.perform (package:analyzer/task/model.dart:220)
#2      AnalysisDriver.performWorkItem (package:analyzer/src/task/driver.dart:284)
#3      AnalysisDriver.computeResult (package:analyzer/src/task/driver.dart:109)
#4      AnalysisContextImpl.computeResult (package:analyzer/src/context/context.dart:730)
#5      AnalysisContextImpl.computeLibraryElement (package:analyzer/src/context/context.dart:697)
#6      DartDoc._parseLibraries.processLibrary (package:dartdoc/dartdoc.dart:507)
#7      List.forEach (dart:core-patch/growable_array.dart:256)
#8      DartDoc._parseLibraries (package:dartdoc/dartdoc.dart:512)
#9      DartDoc.generateDocs (package:dartdoc/dartdoc.dart:136)
<asynchronous suspension>
#10     main.<anonymous closure> (http://localhost:57749/dartdoc.dart:200)
<asynchronous suspension>
#11     Chain.capture.<anonymous closure> (package:stack_trace/src/chain.dart:101)
#12     _rootRun (dart:async/zone.dart:1120)
#13     _CustomZone.run (dart:async/zone.dart:1001)
#14     runZoned (dart:async/zone.dart:1467)
#15     Chain.capture (package:stack_trace/src/chain.dart:99)
#16     main (http://localhost:57749/dartdoc.dart:199)
<asynchronous suspension>
#17     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:263)
#18     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:151)

Caused by NoSuchMethodError: The getter 'element' was called on null.
Receiver: null
Tried calling: element
#0      Object._noSuchMethod (dart:core-patch/object_patch.dart:43)
#1      Object.noSuchMethod (dart:core-patch/object_patch.dart:47)
#2      TypeResolverVisitor.visitGenericFunctionType (package:analyzer/src/generated/resolver.dart:9944)
#3      GenericFunctionTypeImpl.accept (package:analyzer/src/dart/ast/ast.dart:5774)
#4      VariableDeclarationListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:11238)
#5      UnifyingAstVisitor.visitNode (package:analyzer/dart/ast/visitor.dart:3121)
#6      TypeResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:10105)
#7      UnifyingAstVisitor.visitVariableDeclarationList (package:analyzer/dart/ast/visitor.dart:3228)
#8      VariableDeclarationListImpl.accept (package:analyzer/src/dart/ast/ast.dart:11233)
#9      FieldDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:4404)
#10     UnifyingAstVisitor.visitNode (package:analyzer/dart/ast/visitor.dart:3121)
#11     TypeResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:10105)
#12     UnifyingAstVisitor.visitFieldDeclaration (package:analyzer/dart/ast/visitor.dart:3011)
#13     FieldDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:4399)
#14     TypeResolverVisitor.visitClassMembersInScope (package:analyzer/src/generated/resolver.dart:9806)
#15     ScopedVisitor.visitClassDeclaration (package:analyzer/src/generated/resolver.dart:7359)
#16     TypeResolverVisitor.visitClassDeclaration (package:analyzer/src/generated/resolver.dart:9752)
#17     ClassDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:1923)
#18     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:8052)
#19     CompilationUnitImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:2523)
#20     UnifyingAstVisitor.visitNode (package:analyzer/dart/ast/visitor.dart:3121)
#21     TypeResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:10105)
#22     UnifyingAstVisitor.visitCompilationUnit (package:analyzer/dart/ast/visitor.dart:2949)
#23     CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2516)
#24     ResolveUnitTypeNamesTask.internalPerform (package:analyzer/src/task/dart.dart:5134)
#25     AnalysisTask._safelyPerform (package:analyzer/task/model.dart:321)
#26     AnalysisTask.perform (package:analyzer/task/model.dart:220)
#27     AnalysisDriver.performWorkItem (package:analyzer/src/task/driver.dart:284)
#28     AnalysisDriver.computeResult (package:analyzer/src/task/driver.dart:109)
#29     AnalysisContextImpl.computeResult (package:analyzer/src/context/context.dart:730)
#30     AnalysisContextImpl.computeLibraryElement (package:analyzer/src/context/context.dart:697)
#31     DartDoc._parseLibraries.processLibrary (package:dartdoc/dartdoc.dart:507)
#32     List.forEach (dart:core-patch/growable_array.dart:256)
#33     DartDoc._parseLibraries (package:dartdoc/dartdoc.dart:512)
#34     DartDoc.generateDocs (package:dartdoc/dartdoc.dart:136)
<asynchronous suspension>
#35     main.<anonymous closure> (http://localhost:57749/dartdoc.dart:200)
<asynchronous suspension>
#36     Chain.capture.<anonymous closure> (package:stack_trace/src/chain.dart:101)
#37     _rootRun (dart:async/zone.dart:1120)
#38     _CustomZone.run (dart:async/zone.dart:1001)
#39     runZoned (dart:async/zone.dart:1467)
#40     Chain.capture (package:stack_trace/src/chain.dart:99)
#41     main (http://localhost:57749/dartdoc.dart:199)
<asynchronous suspension>
#42     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:263)
#43     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:151)

package:analyzer/src/context/context.dart 735  AnalysisContextImpl.computeResult
package:analyzer/src/context/context.dart 697  AnalysisContextImpl.computeLibraryElement
package:dartdoc/dartdoc.dart 507               DartDoc._parseLibraries.processLibrary
dart:core                                      List.forEach
package:dartdoc/dartdoc.dart 512               DartDoc._parseLibraries
package:dartdoc/dartdoc.dart 136               DartDoc.generateDocs
===== asynchronous gap ===========================
dart:async                                     _Completer.completeError
package:dartdoc/dartdoc.dart 216               DartDoc.generateDocs
===== asynchronous gap ===========================
dart:async                                     new Future.microtask
package:dartdoc/dartdoc.dart 128               DartDoc.generateDocs
http://localhost:57749/dartdoc.dart 200        main.<fn>
===== asynchronous gap ===========================
dart:async                                     new Future.microtask
http://localhost:57749/dartdoc.dart 199        main.<fn>
package:stack_trace                            Chain.capture
http://localhost:57749/dartdoc.dart 199        main

Copied from original issue: dart-lang/test#722

I've moved this issue here because it seems like a bug in the analyzer library that it would crash when trying to resolve a library in test. It's also worth noting that the analyzer executable completes successfully on the same version of test, without reporting any errors.

I also created https://github.com/dart-lang/sdk/issues/31413 here for that reason.

I'll close this as a duplicate then.


Fix Dockerfile replace CMD with enviroment variable for SENZING_SUBCOMMAND

Pull requests:

https://github.com/Senzing/docker-init-container/pull/125


Add referenced links to Markdown

At this moment Crystal markdown parser cannot parse and use link references like this
[link]: google.pl
[Search engine][link]

I have managed to create different way to render links, however there is a problem which I hadn't thought about. This example fails now
assert_render "Hello [world **2**](http://example.com)!", %(
Hello world 2!
)

I wonder why Markdown parser is written by operating byte to byte. In my opinion it should search recursive. It could be not as fast or memory efficient, but it would be much easier to implement.

@akwiatkowski If you'd like to implement in a different way which supports all of markdown features and works well, and isn't terrible slow, please send a PR and we'll gladly review it and probably merge it :-)
This was my first markdown implementation. In the beginning I thought markdown was simple so I started with a simple  and efficient implementation. But it turned out it's very, very complex to parse and get right. I always try to do things in an efficient way. For example markdown parsing is used for generating docs, and this is currently very fast. If markdown parsing is slower, generating docs will be a bit slower. But if it's not terribly slower then I think it's fine.

Actually, with the current implementation this seems not-that-hard to implement. First we make a pass through all lines to gather links. Then as we traverse the text, if we find [text] se check if it's on the gathered links. Nothing else needs to change, right?

If I'm correct there can be:

Regular link [WWW](http://example.com)
Referenced without text: [www]: http://example.com \n [WWW][www]
Referenced with default text: [www]: http://example.com WWW \n [www]
Referenced with default text, but other is forced: [www]: http://example.com WWW \n [Cool site][www]

There is also this way for direct links:
See more at <http://example.org>

I've changed way how it will be implemented. I assume that current version is at least ok and I don't want to change too much because links can be a little bit tricky (like nested with other tags). I've chosen "the preprocessor style". First it analyze all references and then it will overwrite referenced links to regular ones. Not all cases like images, and an example above are done yet, but they could be easily added if you accept this way.
Changes are at https://github.com/crystal-lang/crystal/pull/3686

There is problem with links with closing parenthesis at this moment. Fixed it locally by escaping but I'm not happy with this solution.
escaped_url = url.gsub(/\)/, "%29")

Sample:
[Link](https://pl.wikipedia.org/wiki/Por%C4%99ba_Wielka_(powiat_o%C5%9Bwi%C4%99cimski))

You can reproduce it
require "markdown"

s = "[Link](https://pl.wikipedia.org/wiki/Por%C4%99ba_Wielka_(powiat_o%C5%9Bwi%C4%99cimski))"
puts Markdown.to_html(s)

I think this could be closed in favour of #4613

See #4613


Assign each tone number to a distinct terminal

Separate data and logic in the diacritics_syllable_parse function so that it can be extended to other systems in the future: move tone marks data to external file
For ambiguous cases , e.g. 1 or 4 where it depends on the coda, represent with a placeholder character and use parser logic to correctly assign.

Implemented with tag v0.4.0, defining tones as rules instead of terminals to deal with ambiguity when different tones share same tone mark, see commit message for 002403a3d84
Still looking for a more elegant solution


Accordion unavailable!

Hi,
I just now install semantic-ui.
First of all, I was troubled in accordion issue.As you can see clicking on my project source code,accordion is unavaiable. I think that I have attached all files to be needed with accordion, but why not avaiable?
Thank you!
My project
<link rel="stylesheet" href="/joomla1/semantic/out/semantic.min.css" type="text/css">

    What is a dog?

A dog is a type of domesticated animal. Known for its loyalty and faithfulness, it can be found as a welcome guest in many households across the world.

    What kinds of dogs are there?

There are many breeds of dogs. Each breed varies in size and temperament. Owners often select a breed of dog that they find to be compatible with their own lifestyle and desires from a companion.

    How do you acquire a dog?

Three common ways for a prospective owner to acquire a dog is from pet shops, private owners, or shelters.

A pet shop may be the most convenient way to buy a dog. Buying a dog from a private owner allows you to assess the pedigree and upbringing of your dog before choosing to take it home. Lastly, finding your dog from a shelter, helps give a good home to a dog who may not find one so readily.

@kwaninmacau I think your code would work if you put the line  in the end, AFTER the declaration of the accordion.

Thank you!Great!

Great @kwaninmacau! Just remember to close this issue now it's solved.


Created index.html

Created base html file for the index page. No CSS or JS has been linked.

This is approved, congratulations I did I can write html


Make Dockerfile rolled back to release 1 for source separation

Currently, the repo is not backwards compatible with the source separation code. This needs to be fixed either in the Dockerfile or the the shell script building the docker container.
We need to update the docker build script.

Would also need to rename the shell script for it to something more descriptive...

This should be in pull request #97


use clock_gettime instead of gettimeofday

POSIX.1-2008 marks gettimeofday() as obsolete, recommending the use of clock_gettime(2) instead.

@sonertari can you merge this PR?

Oops, thanks


False positives when searching dates

OS: Windows 10.0.17763.805
dateparser version: 0.7.2
When using the search_dates() function some numerical and punctuation mark combinations that don't resemble any date format I've ever seen get picked up as dates.
To reproduce run the following code and replace <false positive> with any one of the following:

8: 100M2_
100M
10,00 2
19,60 5
73 20

from dateparser.search import search_dates

search_dates("The following isn't a correct date <false positive>")

Same here on OSX 10.15 with version 0.7.2
Here are some examples of results that should not be dates
search_dates(text,languages=['en'], settings={'STRICT_PARSING': True,'PREFER_DATES_FROM': 'past','DATE_ORDER': 'DMY'}, add_detected_language=True)
-- Clearly wrong
('32° 34’S', datetime.datetime(2013, 10, 16, 23, 59, 7), 'en')
('123°', datetime.datetime(1900, 1, 1, 1, 2, 3), 'en')
('6005', datetime.datetime(2000, 6, 5, 0, 0)
('000', datetime.datetime(1900, 1, 1, 0, 0), 'en')
('of 629', datetime.datetime(1900, 1, 1, 6, 2, 9), 'en')
('>21', datetime.datetime(1900, 1, 1, 2, 1), 'en')
-- I can kind of see where it is getting this but I think it is wrong to do it
('3533', datetime.datetime(2033, 5, 3, 0, 0), 'en')
-- I have lots of numbers in these docs. It should not pick them up and 'make' a date from them
('538400', datetime.datetime(8400, 3, 5, 0, 0), 'en')

FYI some cases will be fixed in the next version (after merging this: https://github.com/scrapinghub/dateparser/pull/786)

Seems #786 has been merged, can you please close this issue

Does https://github.com/scrapinghub/dateparser/pull/786 fix all cases reported here? Otherwise, it makes sense to keep this open.

No, I just tested it's not fixed, I am working on fixing it.


Support Dynamic taxonomies (QNA document generators)

This is a new feature request.
Status Quo
Right now, taxonomies are defined by putting answers in qna.yaml files. This is human work and at times requires domain knowledge AND a good eye to spot typos and other mistakes. For some tasks, it may be beneficial to rely on a program to produce QNA to then feed it into the model for synthetic generation.
Some examples of tasks that could benefit from programmable approach to generate seed samples
:

formulaic transliteration between alphabets (e.g. Cyrillic-to-Latin: https://github.com/instructlab/taxonomy/pull/312)
different data format conversion (e.g. extracting data from calendar events: https://github.com/instructlab/taxonomy/pull/232)

Proposal
In addition to qna.yaml files directly stored on disc, also allow to define taxonomies as programs that, when executed, produce a qna.yaml document that complies with the Instruct Lab taxonomy format.
My attempt at implementing both cli and taxonomy bits for this feature (currently closed but I am happy to revive and rebase):
(old)

cli: https://github.com/instructlab/instructlab/pull/489
taxonomy: https://github.com/instructlab/taxonomy/pull/312

(new drafts - rebased old code against current main)

cli: https://github.com/instructlab/instructlab/pull/1005
taxonomy: https://github.com/instructlab/taxonomy/pull/768

Considerations

The final qna.yaml may or may not be stored in the taxonomy repo. (I'd prefer to not store it since it's directly derived from the program.)
The exact format for the program. I suggest to not assume a particular execution environment / language but use Dockerfiles / Containerfiles, plus defining some basic operational interface (e.g. how input can be fed into the container command entrypoint, and how resulting QNA document is returned from the program. One suggestion could be passing both through a volume mount.)
Since we are talking about executables from external contributors, security of the project should be considered: the programs should be validated through GitHub actions, but only when maintainers sanity-checked the contribution is safe; Dockerfiles should use "official" / "proven" base images.

@kelbrown20 @juliadenham @ktam3 wonder if this is something we want to roadmap anytime soon (e.g. 0.20.0) or is more of a backlog item - either way I think it's worth keeping open


TextReporterQuiet prints before each info

When reporting using TextReporterQuiet, the output will show a line for before each:
Test results:
            [?] beforeEach_0
402 passed, 0 failed, 57 skipped

The output should just be:
Test results:
402 passed, 0 failed, 57 skipped

Closed by #123


"Generator" Training

Hi! Thanks for the very neat training code!
In the generator training part (line 142 of train.py). Shouldn't you be updating the parameters of encoder network instead of the decoder (referred to as generator here) network?
Thanks!

I referenced this in another issue -- lines 142-150 are a GAN style update. This is not strictly the adversarial autoencoder at this point (I'm working on a faithful version). The idea is to first do autoencoder training, so forward through encoder+decoder and backward using MSE loss.
Next is a second stage where the decoder is trained to produce images that fool a discriminator (GAN style). It's just a secondary loss on the decoder.
For image synthesis, I found that this architecture works better. But it's likely at the cost of the nice structured latent space that the AAE offers.


Spanner java client + service account without write permission causes high error rate (403)

Steps to reproduce:

Create a service account without write permission.
Initialize an instance of DatabaseClient with default options and credentials from above.

I dug into this a bit and found out that it is due to the default settings of
com.google.cloud.spanner.SessionPoolOptions

Which sets write session fraction to 0.2. These sessions will repeatedly try to make begin transaction API calls but fail since the service account does not have permission.

Closing this in favor of #2624


Add legend or text explanation for color

Currently not clear that color is scaled to duration

Draft legend has been added as of June 9, 2023 with #20


elasticsearch 1.7.5/2.1.2/2.0.x, logstash 2.1.2, kibana 4.3.1/4.2.x

This pull request updates:

the Elasticsearch formula for version 2.1.2, the latest stable version of the 2.1.x line of Elasticsearch as of 2016-02-02
the Logstash formula for version 2.1.2, the latest stable version of the 2.1.x line of Logstash as of 2016-02-02
the Kibana formula for version 4.3.1, the latest stable version of the 4.3.x line of Kibana
remove Elasticsearch formula for unmaintained line 2.0.x
remove Kibana formula for unmaintained line 4.2.x

I pushed some fixup commits that can be --autosquashed when ready.

Thanks again @jasontedor!


Update media-services-face-and-emotion-detection.md

example formula was off..
Old -
Seconds x (Framerate/Timescale) = 63 frames
2.1 X (29.97 / 2997)  = 0.021
New-
Seconds x Framerate = 63 frames
2.1 X 29.97 = 62.937

Hi @DarinShapiroMS, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;

@DarinShapiroMS : Thanks for your contribution to the Azure documentation! The author, @juliako, has been notified to review your proposed change.

@DarinShapiroMS - Thanks for your contribution to the Azure docs. On November 16th, we announced the availability of our Azure technical documentation in a new location on docs.microsoft.com. You can read about it on our team blog. This change means the article source lives in a new GitHub repository. Because there are some changes in the source markdown as a result of the move, we can’t pull your contribution over to the new repo without creating a ton of merge conflicts. We invite you to resubmit the change (if you are willing) to the new version of the article at https://docs.microsoft.com/en-us/azure/media-services/media-services-face-and-emotion-detection. Thanks for your understanding.

@DarinShapiroMS - I am going to update the formula ( based on your feedback) in our new doc repo. Thank you!


Media Modal: Crop selection not always visible

Bug Description

Originally reported here, Lucky and I were able to reproduce this issue when trying to select a poster image.
In some cases the crop selection is not visible and trying to crop in that state results in an error.
Potentially useful files for debugging:
https://github.com/WordPress/wordpress-develop/blob/2382765afa36e10bf3c74420024ad4e85763a47c/src/js/media/controllers/cropper.js#L53-L72
https://github.com/WordPress/wordpress-develop/blob/2382765afa36e10bf3c74420024ad4e85763a47c/src/js/media/views/cropper.js#L82-L83
https://github.com/WordPress/wordpress-develop/blob/2382765afa36e10bf3c74420024ad4e85763a47c/src/js/_enqueues/vendor/imgareaselect/jquery.imgareaselect.js#L42
Expected Behaviour

Cropping selection should always be visible.
Steps to Reproduce

Make browser window small
Click to edit/add poster image
Select a large image that would need to be cropped
See no cropping selection
Click "Crop image" and get an error
Make window bigger
See cropping selection, drag it around if wanted
Click "Crop image" and see how image is sucessfully cropped

Screenshots

https://user-images.githubusercontent.com/841956/126442548-e7111450-a824-4569-9d33-f838aea46aa3.mov
Additional Context

Plugin Version: 1.9.0
WordPress Version: 5.7
Operating System: macOS
Browser: Chrome

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

@spacedmonkey Is this something you could look into as part of this sprint? It's quite an annoying issue as it prevents creators from publishing valid stories.

@swissspidy I spent a couple of hours of this with no luck on debugging on implementation.
I managed to replicate the issue in customizer with a site logo. See screenshot. This implies that this is a core issue.

Not sure of the next steps..

It seems to be known issue - https://core.trac.wordpress.org/ticket/53300

Good to know, thanks!
The jQuery plugin responsible for the cropping is called imgAreaSelect and it turns out it's rather old (9 years without updates!).
Probably the reason why WP uses a patched version: https://github.com/WordPress/wordpress-develop/blob/2382765afa36e10bf3c74420024ad4e85763a47c/src/js/_enqueues/vendor/imgareaselect/jquery.imgareaselect.js
After browsing through the code and the GitHub repo I quickly an identical bug report there with a suggested bugfix:
https://github.com/odyniec/imgareaselect/issues/71#issuecomment-404979992
I applied the change to jquery.imgareaselect.js locally and it worked like a charm.
To fix this we could copy the WP version of the script to our plugin (OK because it's dual-licensed under MIT), patch it and then on the editor screen replace the original script with ours.
Just need to figure out where to put it, but I suppose it's easiest to create a new package for it with a new entry in the webpack config.

If it is a problem with the core version of the jquery.imgareaselect.js, could we just have a patches version of that script in our plugin. Then in our editor, we could dequeue jquery.imgareaselect.js and load a new version from our plugin. Would this work?

That's what I was suggesting, yes. It should work, but should be very easy to verify.

Testing 8501 in QA environment
-opened poster selection and reduced browser window. selected image. crop lines not appearing and nothing happening on selecting "crop image"
https://share.getcloudapp.com/nOuv6QEY

Hmm bummer 😞
@spacedmonkey Can you take another look tomorrow? Everything seems to be fine here, with the correct script being loaded etc.

@swissspidy Can you give me access to QA env? I didn't see this in local env, what to debug on QA env.

Verified in QA


Use explicit count modifiers

The {,N} extension is not supported by most Regexp engines, as it is
an Onigurma-only extension.
Github uses PCRE for parsing and this shorthand isn't supported.

Merged. Thanks.


Enrich "read from broker errored, killing connection" log message with the Kafka message type

I propose to enrich the read from broker errored, killing connection log message adding the Kafka message type as an extra log field. Are you open to such change? If so, I can open a PR.

Sure, feel free to expand some other log lines while at it, too :)


Add tests to ensure that we don't use experimental/private/deprecated tensorflow APIs

Describe the feature and the current behavior/state.
Everything is in the title. It's hard to monitor this. Having a test in the CI would help us make sure we don't start using private/experimental APIs. The more we use them, the harder it's going to be when we bump tensorflow versions. It's also a requirements if we want to be able to support multiple versions of tensorflow at the same time (I know, crazy talk, right?).
In the long run, that's one more check that we won't have to do manually as maintainers.
We should also check for tf.compat.v1. If there is a tf.compat.v1 that we can't remove, it means that we should ask the TF team that they add an API for an equivalent function.
Relevant information

Are you willing to contribute it (yes/no): yes
Are you willing to maintain it going forward? (yes/no): yes, we might even need it for keras
Is there a relevant academic paper? (if so, where): no
Is there already an implementation in another framework? (if so, where): not to my knowledge
Was it part of tf.contrib? (if so, where):no

Which API type would this fall under (layer, metric, optimizer, etc.)
Tests
Who will benefit with this feature?
Us devs, and users because we'll be able to support more TF versions.
Any other info.
I've no idea about how to implement that cleanly. (analysing the AST maybe?) Ideas welcome.

See #1288


TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'

bug in version 0.0.7

Hi @SamuelSilvaAraujo
Can you please provide more description about the issue ?

Fixed, Please upgrade to heyoo latest version.


Create a Dashboard layout of the escrow

Create a Dashboard layout of the escrow. This will show user balances, escrow configuration data, deposit widget, withdraw widget, vault balances

created PR for this (https://github.com/SwineCoder101/encode-solana-bootcamp-project/pull/17) check if this ui looks good or any changes needed?


Multiply & Divide functions in JsonPath

Need multiplying & dividing support in JsonPath.
Why is it required?
We have a service that uses JsonPath extensively to generate huge Json configurations based on user inputs. Sometimes the values in configuration need to be derived from multiple user inputs & that's where multiply & divide functions are required.
Usage will be like this:-
div($.numerator, $.denominator)
$.numbers.mul()
mul($.left, $.right)
Also, I am curious as to why is there no functionality for multiplying & dividing but other arithmetic is there in JsonPath.

Suggesting extending jsonpath to include 4 arithmetic operations using JavaScript syntax ‘*’, ‘/‘, ‘+’, and ‘-‘. This syntax was integrated into sql/JSON standard, and postgresql (and possibly other engines ), already implemented it: https://github.com/obartunov/sqljsondoc/blob/master/jsonpath.md


License of RAFT models

Issue Type
Support
OS
Other
OS architecture
Other
Programming Language
Other
Framework
Other
Model name and Weights/Checkpoints URL
https://github.com/PINTO0309/PINTO_model_zoo/tree/main/252_RAFT
Description
Under what license are the RAFT models published? There is a LICENSE file, however, since the models are hosted externally it is not clear if this license also applies to them. Could you clarify this?
Relevant Log Output
No response
URL or source code for simple inference testing code
No response

With more than 400 different manual operations, file copying errors and work errors can happen often.

Thanks for updating the file. Can you clarify with a yes/no if the LICENSE also applies to the models stored on Wasabi?

Yes


Add Keycloak health port 9000 starting with tag 25.0

What does this PR do?
Starting with tag 25.0 Keycloak uses port 9000 instead of port 8080 for health checks.
Why is it important?
Currently the readiness for image 25.0 and above is not correct and might consider the container ready when it's yet ready.
Related issues

Closes #1208

How to test this PR
Use tag 24.0 and tag 25.0 and asset that all correctly wait for the container to be ready.

For reference, it looks like the changes were introduced in version 25, according to the release notes.

Thanks @paulomorgado 🙏.


refactor [server] lfs configs into [lfs.server] with deprecation warnings

Feature Description
It was determined in #32307 that all the modules/setting/lfs.go:LFS configurations nested under the [server] section is not ideal. These keys should be renamed, and their usage flagged via deprecatedSetting. When this issue is closed, a new one labelled with a future release number should be opened to track the removal of the compatibility code for loading the old configs, and the deprecation warnings removed at that same time.
Screenshots
Here's the state of current LFS-related configurations as they are today:
[server]
LFS_START_SERVER =
LFS_ALLOW_PURE_SSH =
LFS_HTTP_AUTH_EXPIRY =
LFS_MAX_FILE_SIZE =
LFS_LOCKS_PAGING_NUM =
LFS_CONTENT_PATH = # marked deprecated in favor of [lfs].PATH
LFS_JWT_SECRET_URI =
LFS_JWT_SECRET =

[lfs]
PATH =

There are a few ways to reorganize this, I'm going to start by pointing out two ways, but the point of this issue is to reach a consensus and document the decision.

Move everything lfs-related under the [lfs] section, and change their keys accordingly

[server]

[lfs]
PATH =
ENABLED = # previously [server].LFS_START_SERVER
ALLOW_SSH = # previously [server].LFS_ALLOW_PURE_SSH
HTTP_AUTH_EXPIRY = # previously [server].LFS_HTTP_AUTH_EXPIRY
MAX_FILE_SIZE_BYTES = # previously [server].LFS_MAX_FILE_SIZE
LOCKS_PAGING_NUM = # previously [server].LOCKS_PAGING_NUM
JWT_SECRET_URI = # previously [server].LFS_JWT_SECRET_URI
JWT_SECRET = # previously [server].LFS_JWT_SECRET

Move lfs-related configs under subsections

[server]

[lfs.storage]
PATH = # previously [lfs].PATH and before that [server].LFS_CONTENT_PATH
MAX_FILE_SIZE_BYTES = # previously [server].LFS_MAX_FILE_SIZE
LOCKS_PAGING_NUM = # previously [server].LOCKS_PAGING_NUM

[lfs.server]
ENABLED = # previously [server].LFS_START_SERVER
ALLOW_SSH = # previously [server].LFS_ALLOW_PURE_SSH
HTTP_AUTH_EXPIRY = # previously [server].LFS_HTTP_AUTH_EXPIRY
JWT_SECRET_URI = # previously [server].LFS_JWT_SECRET_URI
JWT_SECRET = # previously [server].LFS_JWT_SECRET

[lfs.client]
# future mirroring configs, for the server's lfs client to talk to upstreams

It seems like consensus on how these configurations could be reorganized could not be reached, but that the status quo would be:

[server] would contain any lfs-server configurations prefixed with LFS_
[lfs] would contain any lfs-server configurations related to storage of lfs objects
[lfs_client] would contain any lfs-server configurations related to mirroring upstream lfs endpoints


plugin pages should include an example configuration in yml format

Hello, I think all plugin pages (e.g. tap-postgres, tap-jira, airflow etc) should contain a configuration example to copy paste. More detailed version would be better but it should at least show the base minumum required fields. For example:
plugins:
  loaders:
  - name: target-jsonl
    variant: andyh1203
    pip_url: target-jsonl

Reason 1:
I don't like to use meltano add ... command because it reformats the yml file, I want to add the configuration manually then use meltano install.
Reason 2:
Other than that it's would still be beneficial for clear documentation. Configuration of some taps/targets are probably hard to understand for new-comers, at least it was for me, without many trial/error or asking in the community.

Duplicate of https://github.com/meltano/hub/issues/524


Use the latest middleman v4.2

This PR includes these changes.

Use the latest middleman v4.2
Drop old extension handler named image_optim

@katsuma thanks for updating to 4.2. This is not the canonical repo for middleman-imageoptim. I'm happy to merge the 4.2 bump though!
P.S. Why did you remove the old extension handler? Is that a necessary related change?


Research about Displaying subnet info for project namespaces in Registry UI

Apps hosted in the Emerald Cluster had /24 subnet information generated for them at the time of provisioning namespaces as described in this document (IDIR protected). This information resides in Openshift as part of the namespace meta information. Product teams would like to see this information displayed on the product detail page in the Registry UI.
At this moment the information is only passed from the Registry app to the provisioner to Openshift. This feature requires building the second communication line where information can be passed from Openshift to the provisioner to the Registry app.
Related comments:
DoD:
/24 subnet information is displayed on the product detail page in the Registry for Emerald namespaces.

During my one-on-one with Cailey, I asked about enabling this feature, and I was referred to the Emerald Teams Guide at https://digital.gov.bc.ca/cloud/services/private/internal-resources/emerald/, specifically the section titled **While the issue description noted that the Emerald Cluster generates subnets with a /24 CIDR, the documentation specifies a /26 CIDR for internal pod networks. According to the guide, we can fetch the /26 subnet information for each namespace using the following oc command:
oc get namespace <namespace> -o jsonpath='{.metadata.annotations.ncp\/subnet-0}{"\n"}'

For example, a typical response might look like: <IP_ADDRESS>/26. <namespace> would have to be replaced with then actual namespace in question.
It's important to note, however, that the account used to run this command must be a member of the specified namespace or project. Alternatively, this information is accessible through the web console at the following URL:
https://console.apps.emerald.devops.gov.bc.ca/k8s/cluster/projects/<namespace>/yaml


1.21

Can we please get 1.21 support?

Ja ja ja, same here. This is my favourite menu customisation tool

Ja ja ja same here, best mod I've ever used.

Awwww :3
Mwahhahaha, I will learn Java just to port this mod to 1.27 in a few years hehehe! :3

day<PHONE_NUMBER> of waiting. 😂

DAY<PHONE_NUMBER>8883848384828483 OF WAITING.


ElasticSearch: Allow one to specify on which address to listen on

This commit allows an operator to specify on which address to listen on
and on which port, using respectively elasticsearch_interface and
elasticsearch_port variable.

lgtm


Add workflow to build and verify docker

Closes #23.

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

The run of the workflow can be found here


Integrate multi env files

Each pull request should address a single issue and have a meaningful title.
Description
Explain what you have changed, and why.
Checklist:

[ ] Securely signed commits
[ ] Component(s) with PHPdocs
[ ] Unit testing, with >80% coverage
[ ] User guide updated
[ ] Conforms to style guide

---------Remove from here down in your description----------
Notes

Pull requests must be in English
If the PR solves an issue, reference it with a suitable verb and the issue number
(e.g. fixes 12345)
Unsolicited pull requests will be considered, but there is no guarantee of acceptance
Pull requests should be from a feature branch in the contributor's fork of the repository
to the develop branch of the project repository

I'm not even sure if this is a mistake on your part but I see a ton of problems in this PR:

It seems you are trying to replace the CI4 core with your personal project, Mom's recipes.
Even if this is a valid PR, the changes are enormous for a detailed review. 4.5k + files changed are just massive. Even Github can only handle 3000 file diffs.
Some of the changes proposed are too specific. This means that this is not fit for a general purpose framework as it is fitted to suit a specific purpose, your project.
The multi-env can be implemented without these massive changes. One should only know which files to duplicate.
This even have the node_modules! The heaviest objects in the universe are being stored in Github. We'll complain at best.
You should only fork the repo (1) if you want to contribute to its development, or (2) want to edit it for personal satisfaction. If 2 is your reason, then there's no reason to have us that version. It's yours to keep.
... and many others.

Closing, sorry.

Sorry, I'm new to GitHub and I clicked on the wrong button. I will try to be more careful next time. Thanks for the courteous reply. My mistake totally.
On Monday, April 5, 2021, 09:06:26 AM CDT, John Paul E. Balandan, CPA @.***> wrote:
Closed #4519.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


Replace extension migrations with database annotations

The EFCore team has decided not to support custom migration operations, so the current method to specify PostgreSQL extensions on the model needs to be retired.
See https://github.com/aspnet/EntityFramework/issues/6524#issuecomment-247646209, https://github.com/aspnet/EntityFramework/issues/6546 and https://github.com/aspnet/EntityFramework/wiki/Design-Meeting-Notes-(September-15,-2016)

Done, leaving open to track implementation of provider-rendered implementation of annotations (https://github.com/aspnet/EntityFramework/issues/6546).

Closing this provider-rendered implementation of annotations can be tracked elsewhere.


Removed default value assignments.

Fixes https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1420. There was one false positive, to which I've added a comment to indicate our rationale.

Those are valid points. The reason behind this removals is that those explicit assignments actually cause non-trivial gas costs for little reason, and I felt the value they added was not worth it.


German wordnet

Is German gsg datasource for wordnet already available?

The resource is available https://github.com/sign-language-processing/datasets/tree/master/sign_language_datasets/datasets/sign_wordnet
and one just needs to make download_lexicon.py support this target

comparison wise gsg dataset csv file looks very small compared to ssg, while both are German. Is there also results difference in accuracy? If you already have any experience to compare?

@AmitMY thank you. This means, that need to make a complete new pipeline for sign language dataset library like signsuisse created by you?

Both are german, but one is swiss german sign language, and the other is german sign language.
No need to make a "complete new pipeline", just need to update https://github.com/sign-language-processing/spoken-to-signed-translation/blob/main/spoken_to_signed/download_lexicon.py with loading the sign_wordnet

I tried to replace some lines and use the script to download. below is error.
0it [00:00, ?it/s]2024-06-28 16:13:34.737127: I tensorflow/core/util/port.cc:111] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.
2024-06-28 16:13:34.774483: E tensorflow/compiler/xla/stream_executor/cuda/cuda_dnn.cc:9342] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
2024-06-28 16:13:34.774534: E tensorflow/compiler/xla/stream_executor/cuda/cuda_fft.cc:609] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered
2024-06-28 16:13:34.774563: E tensorflow/compiler/xla/stream_executor/cuda/cuda_blas.cc:1518] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
2024-06-28 16:13:34.781269: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2024-06-28 16:13:35.485184: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
WARNING:absl:Using custom data configuration 2024-06-28
2024-06-28 16:13:36.819648: W tensorflow/tsl/platform/cloud/google_auth_provider.cc:184] All attempts to get a Google authentication bearer token failed, returning an empty token. Retrieving token from files failed with "NOT_FOUND: Could not locate the credentials file.". Retrieving token from GCE failed with "FAILED_PRECONDITION: Error executing an HTTP request: libcurl code 6 meaning 'Couldn't resolve host name', error details: Could not resolve host: metadata.google.internal".
Downloading and preparing dataset Unknown size (download: Unknown size, generated: Unknown size, total: Unknown size) to /home/onetimeuser/tensorflow_datasets/sign_wordnet/2024-06-28/1.0.0...
/work/anaconda3/envs/sign/lib/python3.10/site-packages/sign_language_datasets-0.2.1-py3.10.egg/sign_language_datasets/datasets/warning.py:5: UserWarning: This library provides access to data sets without claiming ownership over them or defining their licensing terms. Users who download data are responsible for checking the license of each individual data set.
  warnings.warn(
[nltk_data] Downloading package wordnet to
[nltk_data]     /home/onetimeuser/nltk_data...
[nltk_data]   Package wordnet is already up-to-date!
[nltk_data] Downloading package omw-1.4 to
[nltk_data]     /home/onetimeuser/nltk_data...
[nltk_data]   Package omw-1.4 is already up-to-date!
[nltk_data] Downloading package extended_omw to
[nltk_data]     /home/onetimeuser/nltk_data...
[nltk_data]   Package extended_omw is already up-to-date!
Dl Size...: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3148467/3148467 [00:00<00:00, 751943271.38 MiB/s]
Dl Completed...: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00, 680.53 url/s]
Dl Size...: 100%|█████████████████████████████████████████████Translation Languages ['eng']█████████████████████████████████████████████████████████████████████████████████| 3148467/3148467 [00:00<00:00, 835746328.21 MiB/s]
0it [00:05, ?it/s]..:   0%|                                                                                | 0/1 [00:00<?, ? splits/s]
Traceback (most recent call last):
  File "/work/justcheckresult/sign_language/spoken-to-signed-translation-main/spoken-to-signed-translation-main/spoken_to_signed/download_lexicon.py", line 128, in <module>
    main()
  File "/work/justcheckresult/sign_language/spoken-to-signed-translation-main/spoken-to-signed-translation-main/spoken_to_signed/download_lexicon.py", line 124, in main
    add_data(data, args.directory)
  File "/work/justcheckresult/sign_language/spoken-to-signed-translation-main/spoken-to-signed-translation-main/spoken_to_signed/download_lexicon.py", line 110, in add_data
    for row in tqdm(data):
  File "/work/anaconda3/envs/sign/lib/python3.10/site-packages/tqdm/std.py", line 1181, in __iter__
    for obj in iterable:
  File "/work/justcheckresult/sign_language/spoken-to-signed-translation-main/spoken-to-signed-translation-main/spoken_to_signed/download_lexicon.py", line 47, in load_signsuisse
    dataset = tfds.load(name='sign_wordnet', builder_kwargs={"config": config})
  File "/work/anaconda3/envs/sign/lib/python3.10/site-packages/tensorflow_datasets/core/logging/__init__.py", line 169, in __call__
    return function(*args, **kwargs)
  File "/work/anaconda3/envs/sign/lib/python3.10/site-packages/tensorflow_datasets/core/load.py", line 647, in load
    _download_and_prepare_builder(dbuilder, download, download_and_prepare_kwargs)
  File "/work/anaconda3/envs/sign/lib/python3.10/site-packages/tensorflow_datasets/core/load.py", line 506, in _download_and_prepare_builder
    dbuilder.download_and_prepare(**download_and_prepare_kwargs)
  File "/work/anaconda3/envs/sign/lib/python3.10/site-packages/tensorflow_datasets/core/logging/__init__.py", line 169, in __call__
    return function(*args, **kwargs)
  File "/work/anaconda3/envs/sign/lib/python3.10/site-packages/tensorflow_datasets/core/dataset_builder.py", line 699, in download_and_prepare
    self._download_and_prepare(
  File "/work/anaconda3/envs/sign/lib/python3.10/site-packages/tensorflow_datasets/core/dataset_builder.py", line 1669, in _download_and_prepare
    split_infos = self._generate_splits(dl_manager, download_config)
  File "/work/anaconda3/envs/sign/lib/python3.10/site-packages/tensorflow_datasets/core/dataset_builder.py", line 1644, in _generate_splits
    future = split_builder.submit_split_generation(
  File "/work/anaconda3/envs/sign/lib/python3.10/site-packages/tensorflow_datasets/core/split_builder.py", line 331, in submit_split_generation
    return self._build_from_generator(**build_kwargs)
  File "/work/anaconda3/envs/sign/lib/python3.10/site-packages/tensorflow_datasets/core/split_builder.py", line 391, in _build_from_generator
    for key, example in utils.tqdm(
  File "/work/anaconda3/envs/sign/lib/python3.10/site-packages/tqdm/std.py", line 1181, in __iter__
    for obj in iterable:
  File "/work/anaconda3/envs/sign/lib/python3.10/site-packages/sign_language_datasets-0.2.1-py3.10.egg/sign_language_datasets/datasets/sign_wordnet/sign_wordnet.py", line 145, in _generate_examples
    "sign_language": IANA_MAP[row["language"]],
KeyError: 'dsgs'

If you can guide what could be reason. it downloaded, but only English for some reason. I could not fix for the de although i tried to change

It seems like they added some new languages. We need to add them to this dictionary here.
https://github.com/sign-language-processing/datasets/blob/master/sign_language_datasets/datasets/sign_wordnet/sign_wordnet.py#L26

@AmitMY Thank you. I changed it. "dgs": "gsg", is the language ??isnt it? and remaining I did somewhere, but when it downloads, it download only English wordnet. it looks like the nltk has no access to german sign_wordnet

No DSGS is Swiss German sign language which is code SGG.
Unfortunately, can't really check for you why it only downloads the English Word net, as I broke both my hands and I'm now only dictating to you.
You can try to debug the data set in the data set repository

@AmitMY  Oh GET WELL SOON and recover fast and well. Best wishes for you. I will try to fix it.


[SPARK-20996][YARN] Better handling AM reattempt based on exit code in yarn mode

What changes were proposed in this pull request?
Yarn provides max attempt configuration for applications running on it, application has the chance to retry itself when failed. In the current Spark code, no matter which failure AM occurred and if the failure doesn't reach to the max attempt, RM will restart AM, this is not reasonable for some cases if this issue is coming from AM itself, like user code failure, OOM, Spark issue, executor failures, in large chance the reattempt of AM will meet this issue again. Only when AM is failed due to external issue like crash, process kill, NM failure, then AM should retry again.
So here propose to improve this reattempt mechanism to only retry when it meets external issues.
How was this patch tested?
Manual verification.

Test build #77771 has started for PR 18213 at commit 1fa1415.

CC @mridulm, can you please help to review?

Test build #77771 has finished for PR 18213 at commit 1fa1415.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/77771/
Test PASSed.

What is the expectation for spark streaming (yarn cluster case) ?
+CC @tgravescs

For Streaming application, I just treat it as normal Spark application, if it fails from itself internally, AM will unregister itself, if it is from external issue then AM will not unregister itself.

Test build #77808 has started for PR 18213 at commit 64c59a4.

Test build #77808 has finished for PR 18213 at commit 64c59a4.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/77808/
Test PASSed.

@mridulm , the exit code of pyspark or R is really user defined, user could exit with any code, for example sys.exit(100), so potentially it could be overlapping.

Test build #77809 has started for PR 18213 at commit 1559cbb.

Test build #77809 has finished for PR 18213 at commit 1559cbb.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/77809/
Test PASSed.

Test build #77835 has started for PR 18213 at commit 2b364fd.

Test build #77835 has finished for PR 18213 at commit 2b364fd.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/77835/
Test PASSed.

I'm not so sure about this... this is a fundamental change in how the feature works. With this change, there are only two cases where the AM will be retried:

the client-mode AM
when YARN kills the driver (EXIT_EARLY)

Every other error will disable re-attempts. That includes the user app errors you mention but it also includes infra issues (like an app failing because some temporary issue with HDFS causing tasks to fail, for example).
I've seen the idea floating around about setting the max attempts to 1 by default, and I think that's a better solution (at least for cluster mode). That means users would have to opt-in to driver re-attempts, which mitigates a lot of the problems with blindly re-attempting to run the whole application.

Thanks @vanzin , a valid concern, actually it is hard for AM to differentiate several different scenarios and treat with different approaches. So your suggestion is only to set max attempt to 1 as default, am I understanding right?

@vanzin , how about the current changes, I set the default maxAttempts to 1.

Test build #78283 has started for PR 18213 at commit fd9c20f.

Test build #78283 has finished for PR 18213 at commit fd9c20f.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/78283/
Test PASSed.

Merged build finished. Test PASSed.

I think this is a very hard thing for us to know, to many different failure types.  I agree that setting to 1 is better then us getting it wrong, although I question a bit still if that is right either.    Yes if it fails and was a user error it retries a couple of times and wastes some time and resources. If user is watching they should see that and kill it. That to me is not as bad as not retrying when you should.
personally I would rather see this stay, if you want it changed for your distribution or cluster config then set it in the confs for your cluster.
If you have specific cases you are seeing this to much perhaps we can look at those in more detail to handle specially.

With your current change, you won't allow re-tries of the client-mode AM. It's rarely the user's fault when the client-mode AM needs to be restarted.
I kinda agree with Tom that at this point it's safer to just leave the current behavior as is, and if you really care about it, you can set the config you want in your default cluster settings.

Thanks @tgravescs @vanzin for your comments, I think it is quite valid, I will close this PR.


enable brotli4j in example applications

Motivation:
The [example] applications cannot return Brotli compressed
responses because brotli4j is not on the classpath.
Modification:
add brotli4j to [example] pom.xml
Result:
Brotli compression is enabled in the [example] applications.

Please add linux-aarch64 and linux-armv7 natives also.

Done.

Failed due to flaky test. Do a squash force-push to trigger-build again.

Failed due to flaky test. Do a squash force-push to trigger-build again.

Done.

LGTM :)


figure caption code issues -- space after end of caption is breaking code

It looks like the markdown to PDF conversion didn't properly format the figure descriptions (some did, some didn't). I am assuming this is suppose to be bold, and we should not have the asteriks, that should have been markdown code.
After looking into it more, looks like I found the issue.
There is a space after the figure caption and before '**' code, which looks like it breaks the operation.
https://github.com/pluralitybook/plurality/blob/941a8594a24df946c2e3e2c9174cfb291c6e36a3/contents/english/2-0-information-technology-and-democracy-a-widening-gulf.md?plain=1#L69C92-L69C94
Example with no space, code does not break in: https://github.com/pluralitybook/plurality/blob/941a8594a24df946c2e3e2c9174cfb291c6e36a3/contents/english/6-0-from-⿻-to-reality.md?plain=1#L78

@jason-entenmann, is this to say PDF shouldn't show these ** before and after the figure?

Hey Aki- This is correct. The double asteriks before and after a sentence is what is used to mark them as bold (similar to discord), but it looks like if you put a space at the end of your statement, the converter was not properly bolding these figure captions.

 Gov4Git notices
On Tuesday, 09-Apr-24 20:11:20 UTC by Gov4Git dev
Notice jmgb4l
Started managing this issue, using the Plural Management Protocol v1,  as Gov4Git concern 842 with initial priority score of 0.000000.
This project is managed by Gov4Git, a decentralized governance system for collaborative git projects.
To participate in governance, install the Gov4Git desktop app.
Notice vlsgd5
This issue's priority score is now 0.000000.
The cost of priority is 0.000000.
The projected bounty is now 0.000000.
Notice gyklf4
The set of eligible proposals claiming this issue is empty.

 Gov4Git notices
On Sunday, 28-Apr-24 19:32:13 UTC by Gov4Git dev
Notice uoghw6
This issue's priority score is now 196.000000.
The cost of priority is 196.000000.
The projected bounty is now 196.000000.
Notice jugseb
The set of eligible proposals claiming this issue is empty.


Add Github Action for running image and text diff check

Summary:

Added a new Github action that uses the build-branch-master and build-branch-dev artifacts to do an image and text diff check on the master and dev branches.
Added image comparison script from the demo_image_checker repository.
Added new branch demo_output_comparison_new to save diff results.

See here to check previous runs of this workflow.

[sc-38737]


Mouse: specify a cursor sprite

I'm attempting to build a small game UI using ebiten and would be interested in the ability to use a custom mouse cursor.
So this is a feature request :-)
A Mouse cursor should be a sprite, with transparency, and a image.Point telling what is the top-left position of the cursor. (Similar requirement as of the https://wiki.libsdl.org/SDL_CreateCursor)

Thank you for requesting!
Ebiten uses GLFW and fortunately there is a way to create a custom cursor (http://www.glfw.org/docs/latest/input_guide.html#cursor_custom). Let me consider if I should do this.

How about drawing an cursor image by yourself and hiding the default cursor with a new function introduced at #258 ?

That should work! Will give it a try when time permits

Great! Let me close this issue. Please feel free to reopen this if you find a new concern.


can't find utils_glue

import fails

It's hard to tell what could be the source of the error without describing with some minimum details in the issue what you tried to do/run...
If you are running run_glue.py in the examples, make sure that utils_glue.py is present in the same working directory in which you are executing the script.

Thanks David. Turns out that the import in e.g., run_glue.py should be
from examples.utils_glue import ...
instead of
from utils_glue import ...
Maybe it's a problem of PyCharm IDE