SIA.svg is Broken

This is happening when you're trying to parse the SVG over the browser / via svgo.

Just need to delete all the sketch parts:
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 viewBox="0 0 226.8 226.8" style="enable-background:new 0 0 226.8 226.8;" xml:space="preserve">
<g id="Get-started">
	<g id="Desktop-_x28__x3E_1200px_x29_" transform="translate(-161.000000, -19.000000)">
		<g id="Nav" transform="translate(161.000000, 19.000000)">
			<g id="logo">
				<path id="Fill-2_1_" class="st0" d="M39.8,35.8c0.2,0.2,0.4,0.4,0.7,0.6L39.8,35.8C39.8,35.8,39.8,35.8,39.8,35.8"/>
				<path id="Fill-3_1_" class="st0" d="M43.8,31.9l0.6,0.6C44.2,32.3,44,32,43.8,31.9C43.8,31.8,43.8,31.9,43.8,31.9"/>
				<path id="Fill-4" class="st0" d="M191.4,88.3c-21.7-13.6-48.8-15-71.7-4.3c0,0,0,0,0,0c-12.1,5.5-26.7,3.5-37.1-5.8
					c-0.5-0.4-0.9-0.8-1.4-1.3l-46-46c0,0,0,0,0,0c-3.1-3.4-4.4-7.9-3.9-12.2c0,0,0,0,0,0c0.2-0.9,0.3-1.9,0.3-2.9
					C31.5,7,24.4,0,15.7,0S0,7.1,0,15.7c0,8.7,7,15.7,15.7,15.7c1,0,2-0.1,2.9-0.3c0,0,0,0,0,0C23,30.8,27.5,32,31,35c0,0,0,0,0,0
					l46.2,46.2c0.4,0.4,0.7,0.8,1,1.2c9.3,10.4,11.2,25,5.7,37.1c0,0,0,0,0,0c-10.8,22.8-9.4,50,4.3,71.7c2.9,4.7,6.4,9.1,10.4,13.1
					c12.9,12.9,30,20.5,46.9,22c4.4,0.4,67.4,0.2,67.4,0.2c3.4,0,6.9-1.7,9.3-4.1c2.4-2.4,4.4-6.3,4.4-9.7c0,0,0-58,0-61
					c0-3-0.7-7.4-0.7-8c-1.5-16.9-8.7-32.2-21.6-45.1C200.4,94.7,196,91.2,191.4,88.3L191.4,88.3z M195.4,139.4
					c1.8,8.7,1.9,12.5,1.9,13.1v30.9c0,3.4-1.5,7.4-3.9,9.8c-2.4,2.4-6.4,3.9-9.8,3.9h-30c-0.6,0-7.6-0.1-14.1-1.9
					c-7.3-2-14.1-5.9-19.8-11.6c-17.7-17.7-17.7-46.4,0-64.1c17.7-17.7,46.5-17.7,64.1,0C189.4,125.3,193.9,132,195.4,139.4
					L195.4,139.4z"/>
			</g>
		</g>
	</g>
</g>
</svg>

IMO a good practice for this repo would be running svgo on a travis job.. Sounds easy enought o be done since you can use webpack and svgo-loader to try it out without any effort.. If the build fails one or more of the SVGs is broken

Thanks for info, @kazazor! If some coin has its logo already in SVG, I include the original (if it's usable in small sizes – if not, I usually edit it a bit). This was one of those cases, I haven't checked the SVG, so thanks!

No problem! :)
So what do you think in general on including svgo in your build process? So we won't find out of broken SVGs by the clients of the repo but way sooner than that..
At the moment that prevents me from using the package since I will not give up on svgo as part of my pipeline for serving SVGs

I'm not sure how you think I build SVGs other than in Illustrator/Inkscape :) This repo is pretty much just a collection of images. "Building" isn't really part of this process at all.. and I honestly don't have any experience with travis at all.
I'm open to suggestions/enlightenment though!

What I'm saying it that you need a system that verifies you're not publishing SVGs that are broken before you publish a new version of the package.
At the moment this package is broken and we cannot use it.
My suggestion was to create a npm script to run svgo on all of your files. If it returns with no error code you're ok.
Then after creating it, you can hook Travis to your pull requests for adding new SVGs in the repo (I'm assuming the master branch is protected and can only receive new commits using a PR). In the Travis "build" you'll run the npm script you prepared.
If it fails it will block the merging of the PR (once you'll set it as a blocker in the branch settings of the repo) until you'll fix it.
That way you'll be 100% safe from any issues like this one.
I may have written it with much details, but it's really easy and Travis is 2 minutes to set up.
Does that make sense?

..before you publish a new version of the package. At the moment this package is broken and we cannot use it.

Why do you keep talking about packages, when this is just a simple repo containing some SVG images and CSS files?
I get your idea, however I think it is redundantly complex. I have no experience with any of the tools you describe (Travis, branch protecting, building via npm, ..), I'll just set up a Gulp task to optimise those SVGs via svgo as you suggest, which should be sufficient.
Keep in mind I'm no programmer. If I was, I wouldn't probably be drawing icons, hehe.

@kazazor OK, so it's been bugging me those last 2 hours or so, so I decided to give it a try anyways (learn new things, right?). Could you please point me in the direction of that

npm building via svgo

I should use? As I said, I'm using Gulp, but I'm not sure it's the same thing as you suggest.. I'm a bit lost on what the script should contain and in which format. Is that just a bash script with
svgo -f ../path/to/folder/with/svg/files

?

OK I see now the confusion and why I called it a package all the time. Have a look here: https://www.npmjs.com/package/cryptocoins-icons
This is an npm package that actually points to this repo as its repo. So it's a wrapper of this repo to be used in js projects.
It is just a shell script just like you mentioned in your comment.
If it will fail it means something is wrong with your SVGs
Now if you're using Gulp (and I haven't seen it in the repo here) I would say you can even do it simpler..
You can just have a package.json file in this repo with the content like this:
{
  "name": "<your package name>",
  "version": "0.0.1",
  "scripts": {
    "test": "node_modules/.bin/svgo -f <path_to_folder>"
  },
  "devDependencies": {
    "svgo": "latest"
  }

Then just running npm i and then npm test will run your code. No need for complex Gulp here..

Oh I see! Yeah, that guy asked me to publish my repo on NPM, so I gave him permission waaay back. I've asked him to take it down (as it isn't even up-to-date anymore).
I've already started to play with Travis and what you wrote. Gotta say, it's exciting. Looks like I figured it out in the end: https://github.com/allienworks/travis-test/pull/1
When I have some time, I'll implement it all in here as well.
Thanks much for your valuable input and nudging me in the right direction! Glad to learn this!

Sure thing :)
By the wya, when you do get him to remove his package, could be nice if you'll publish one (super easy!) when you're updating your SVGs.. Very useful IMO

Sure, thanks for your help!

I would be happy to help set up it as an npm package if you need help :)
That will be super helpful to me and for every team that creates web apps with these icons :)

The package is already under my control. From what I've read in NPM docs, updating packages in a manual process.
Is there a way to update the package each time a commit/PR is merged into master? If you could point me in the right direction, that would be amazing :)

Well I would actually keep it manually.. I think it's a little bit too risky to do it automatically..
But if you want that I'm sure you can just check on Travis if it's running on master branch and only on that branch run npm publish. You'll need to provide an .npmrc file there which you'll need to see how to supply to Travis because you don't want it to be pushed to the repo for everyone to see..
I guess it's too much to do and doesn't worth it :)
How ever, I would add a prepublishOnly scrupt to your package.json file that will run npm test.
npm test should run svgo on all your files so in case of an error the publish would fail..

Missing part from my last comment:
So publishing a package which is broken is not something I would recommend.
This kind of settings will protect you from that situation.
By the way, I think the issue is fixed with the new version so this repo may be closed

Yes, I released a new version today, along with NPM package. It should be all well.
Thanks really much for all the info and help! Appreciated!
Also hopefully Cryptocoins will help you in your efforts – I'll be really glad to hear what have you built with the icons!


[documentation] Cookbook : a project of library written with amaranth hdl

I thought this would be usefull.

Abstract
You have written some hardware design using amaranth-hdl, that you wish to promote into a library in order to reuse it in another project ?
You also have written some tests that use SymbiYosys(sby) to validate this library in part or in full ?
This cookbook will describe the minimal settings to run those test in a github action in order to validate a commit. Before that, as a reminder or quick start, it will also describe what to install locally and a way to write tests. It is based on this commit from a project of mine to gather some reusable stuff for my own projects.
Target audience
This cookbook will be easier to understand provided :

The reader already has set up github actions preferably for a python project.
The reader already has set up a python package to publish to the Python Package Index

However, the reference project is small enough to be studied at a leisurely pace and be used as an informative template
Overview
This cookbook will describe the following item, in that order

Local setup : what you need to install to be able to use sby ; I am working on Ubuntu 20 LTS
Python package definition : how to fill you package descriptor ; I will use setuptools and follows PEP 621
Github actions : how to run the test on the github repository to validate commits and pull request.

Local Setup
The key point is to install SymbiYosys from source, meaning following the installation manual.
I installed the required parts ("Yosys, Yosys-SMTBMC and ABC", and "sby") and the recommanded part ("boolector").
Python package definition
See the reference file in full.
The key point is the list of dependencies. In order to use up to dates versions of amaranth, I instruct the setup tools to use a recent commit on the main branch. The targeted commit hashes will have to be updated with time.
dependencies = [
    "amaranth @ git+https://github.com/amaranth-lang/amaranth@3a51b612844a23b08e744c4b3372ecb44bf9fe5d",
    "amaranth-boards @ git+https://github.com/amaranth-lang/amaranth-boards@2d0a23b75ebb769874719297dec65ff07ca9e79f",
    'importlib-metadata; python_version>"3.8"',
]

Implementing tests that call sby
See the reference file in full
First thing first, I instructed git to ignore any file named tmp or like tmp.*. Then, my tests generate RTLIL files and their companion SBY files with names starting with tmp. This is to make sure that those artefacts will not end up in the repository.
This part will show :

The instanciation of a simple test bench
The generation of the RTLIL from the test bench
The generation of the SBY configuration file for the test bench
The invocation of sby

Instanciate a simple test bench

Embed an instance of you Elaboratable module as a submodule of your test bench. For my project, I wrote a little helper to avoid repeating myself

class Test:
    @staticmethod
    def _buildTestBench(dut: Elaboratable, test) -> Module:
        """
        dut : 'Device Under Test'
        test : a function that will add assertions to the test bench
        """
        m = Module()
        cd = Test._clockDomain("sync")
        m.domains.sync = cd
        m.submodules.dut = dut
        test(m, cd)
        return m

Add assertions to your test bench ; For my project, I devised for a function provided with the test bench and the clock domain, in order to add those assertions ; then, this function is given to the helper presented at step 1

def shouldAssertTheCorrectBitWhenInputIsInRange(m: Module, cd: ClockDomain):
    rst = cd.rst
    demux = m.submodules.dut
    channelCount = demux.channelCount
    for i in range(0, channelCount):
        with m.If(~Past(rst) & (Past(demux.input) == i)):
            m.d.sync += [
                Assert(demux.output == (1 << i)),
                Assert(~(demux.outOfRange)),
            ]

Generate the RTLIL file
Given a base name, I will instruct amaranth.back.rtill to generate the specified RTLIL file with :
        ilName = f"tmp.{baseName}.il"

        m = Test._buildTestBench(dut, test)
        fragment = Fragment.get(m, platform)
        output = rtlil.convert(
            fragment,
            ports=dut.ports(),
        )
        print(f"Generating {ilName}...")
        with open(ilName, "wt") as f:
            f.write(output)

Generate the SBY configuration file
Each test will require a SBY configuration file in order to target the generated RTLIL. For my project, I wrote a little helper that generate the file from the target RTLIL file and the required depth ; then I use this helper
class Test:
    @staticmethod
    def _generateSbyConfig(sbyName: str, ilName: str, depth: int):
        print(f"Generating {sbyName}...")
        with open(sbyName, "wt") as f:
            f.write(
                "\n".join(
                    [
                        "[tasks]",
                        "bmc",
                        "cover",
                        "",
                        "[options]",
                        "bmc: mode bmc",
                        "cover: mode cover",
                        f"depth {depth}",
                        "multiclock off",
                        "",
                        "[engines]",
                        "smtbmc boolector",
                        "",
                        "[script]",
                        f"read_ilang {ilName}",
                        "prep -top top",
                        "",
                        "[files]",
                        f"{ilName}",
                    ]
                )
            )

        ilName = f"tmp.{baseName}.il"
        sbyName = f"tmp.{baseName}.sby"

        Test._generateSbyConfig(sbyName, ilName, depth)

Invoke sby

For now I rely on amaranth._toolchain.require_tool to mimic what is done for the amaranth project, it will be necessary for the github action.

In a subprocess, we launch a simple invocation like sby -f <the-sby-configuration-file>, and we check the return code for detecting failure.
        invoke_args = [require_tool("sby"), "-f", sbyName]
        print(f"Running sby -f {' '.join(invoke_args)}...")
        with subprocess.Popen(invoke_args) as proc:
            if proc.returncode is not None and proc.returncode != 0:
                exit(proc.returncode)

Testing locally
I wrote a little script to automate this part, because I includes reformating the sources, packaging and re-installing locally the project, and then launching the tests and compute coverages
# rebuild, install and test
python3 -m build && python3 -m pip install --force-reinstall dist/*.whl && \
python3 -m coverage run --source=amaranth_stuff --branch -m pytest && \
python3 -m coverage report -m && \
python3 -m coverage html

Github actions
See the reference file in full
The key points when setting up the github actions are :

the list of dependencies to install, including amaranth-yosys
the export of some environment variables before running the test in order to use the sby from amaranth_yosys. That is where using the aforementioned amaranth._toolchain.require_tool is coming in handy.

Installation of dependencies
    - name: Install dependencies
      run: |
        sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys FA8E1301F4D3932C
        sudo add-apt-repository 'deb http://ppa.launchpad.net/sri-csl/formal-methods/ubuntu bionic main'
        sudo apt-get update
        sudo apt-get install yices2
        python -m pip install --upgrade pip
        python -m pip install flake8 pytest
        pip install 'yowasp-yosys==0.20.dev398' # latest version that works on Python 3.7
        pip install 'amaranth @ git+https://github.com/amaranth-lang/amaranth@3a51b612844a23b08e744c4b3372ecb44bf9fe5d'
        pip install 'amaranth-boards @ git+https://github.com/amaranth-lang/amaranth-boards@2d0a23b75ebb769874719297dec65ff07ca9e79f'
        pip install 'amaranth-yosys @ git+https://github.com/amaranth-lang/amaranth-yosys@85067f31288493989d6403527309888e839a65a3'

Running the tests
    - name: Test with pytest
      run: |
        export AMARANTH_USE_YOSYS=builtin YOSYS=yowasp-yosys SBY=yowasp-sby SMTBMC=yowasp-yosys-smtbmc
        PYTHONPATH="$(pwd)/src" pytest

Erratum : build the test bench, generate the rtlil, and invoke sby
With the described procedure, I could not have failing assertion (most likely, they was never reached because of the evaluation on rst in the m.If ). And the invocation won't exit because proc.returncode will stay at None
⇒ The clock domain's clk and rst signal MUST be part of the ports given to rtlil.convert(...)
⇒ As we don't need to do something fancy during the invocation of sby, just use subprocess.run(...).check_returncode() to raise a CalledProcessError when a verification fails
See the fix commit
Below are fixed parts :

Instanciate a simple test bench (item 1)
Generate the RTLIL file
Invoke sby

Instanciate a simple test bench

Embed an instance of your Elaboratable module as a submodule of your test bench. A clock domain MUST have been instanciated to be able to get the reset signal for the test.
For my project, I wrote a little helper to avoid repeating myself, with dut being the elaboratable module to test (Device Under Test), cd being the clock domain, and test being a function that will setup the assertions, see below

class Test:
    @staticmethod
    def _buildTestBench(dut: Elaboratable, test, cd: ClockDomain) -> Module:
        """
        dut : 'Device Under Test'
        test : a function that will add assertions to the test bench
        """
        m = Module()
        m.domains.sync = cd
        m.submodules.dut = dut
        test(m, cd)
        return m

Generate the RTLIL file
Given a base name, I will instruct amaranth.back.rtill to generate the specified RTLIL file with :
        ilName = f"tmp.{baseName}.il"

        sync = ClockDomain("sync")
        rst = Signal()
        sync.rst = rst

        m = Test._buildTestBench(dut, test, sync)
        fragment = Fragment.get(m, platform)
        output = rtlil.convert(
            fragment,
            ports=dut.ports() + [sync.rst, sync.clk],
        )
        print(f"Generating {ilName}...")
        with open(ilName, "wt") as f:
            f.write(output)

Invoke sby

For now I rely on amaranth._toolchain.require_tool to mimic what is done for the amaranth project, it will be necessary for the github action.

In a subprocess, we launch a simple invocation like sby -f <the-sby-configuration-file>, and we check the return code for detecting failure.
        invoke_args = [require_tool("sby"), "-f", sbyName]
        print(f"Running sby -f {' '.join(invoke_args)}...")
        subprocess.run(invoke_args).check_returncode()

That's all (until next time)

Erratum : Generate the SBY configuration file
For the CI to work, do not use boolector, only smtbmc. I also simplified the file to looks like more the one used by the FHDLTestCase
Here is the fixed part :

Generate the SBY configuration file
Each test will require a SBY configuration file in order to target the generated RTLIL. For my project, I wrote a little helper that generate the file from the target RTLIL file and the required depth ; then I use this helper
class Test:
    @staticmethod
    def _generateSbyConfig(sbyName: str, ilName: str, depth: int):
        print(f"Generating {sbyName}...")
        with open(sbyName, "wt") as f:
            f.write(
                "\n".join(
                    [
                        "[options]",
                        "mode bmc",
                        f"depth {depth}",
                        "",
                        "[engines]",
                        "smtbmc",
                        "",
                        "[script]",
                        f"read_ilang {ilName}",
                        "prep -top top",
                        "",
                        "[files]",
                        f"{ilName}",
                    ]
                )
            )


Initial commit of clouddb-extractor community sample

Initial commit of clouddb-extractor community sample utility.  Used to demonstrate how to sync from Google BigQuery to published hyper extracts using the new data update Hyper API methods.

looking good, except for the remaining dead code


switch form reader to consumer when fetch partition

Codecov Report
Base: 41.68% // Head: 41.90% // Increases project coverage by +0.22% :tada:

Coverage data is based on head (4792212) compared to base (a223050).
Patch coverage: 78.87% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #181      +/-   ##
==========================================
+ Coverage   41.68%   41.90%   +0.22%
==========================================
  Files          33       33
  Lines        2272     2286      +14
==========================================
+ Hits          947      958      +11
  Misses       1207     1207
- Partials      118      121       +3

Impacted Files
Coverage Δ

pkg/kafsar/offset_helper.go
50.00% <0.00%> (ø)

pkg/kafsar/offset_manager_impl.go
73.64% <0.00%> (ø)

pkg/kafsar/kafsar_impl.go
42.65% <82.08%> (+0.71%)
:arrow_up:

pkg/kafsar/group_coordinator_standalone.go
68.05% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Shared objects in Little Proxy

Hi,
I have a specific use case where we need to do the filtering based on the client IP in HttpFiltersAdapter.
Client IP is available in ActivityTracker.clientConnected.
As per my knowledge, LittleProxy doesn't have any method to share objects which are request specific.
So it seems impossible for me to pass around the client IP or any other context-specific object from one class to another.
I thought of using a static map which can hold references whose keys are based on the client IP and Port. But since I cannot access the client IP in another class, I cannot deference.
Any suggestions on how to solve this?

We do this in a in clientToProxyRequest method like this:

getClientCtx().attr(ORIGIN_ADDRESS).setIfAbsent(getIpForRequest(httpObject));

Then you can get it in other filter like this:

getClientCtx().attr(ORIGIN_ADDRESS).get()

Thanks for this information.
Is there a default implementation of getClientCtx() which returns the current channel context in every class or do I have to modify LP's code and add a ChannelInboundHandler to save all active channels in a list or map?

After reading the code, I found out that HttpFiltersSource.filterRequest also gets the ChannelHandlerContext in its arguments. This was not mentioned in the outdated docs I was using.
It would be great if the Client Channel Context is also passed in ChainedProxyManager.lookupChangedProxies since in many cases, proxies will be selected on the basis of Client-side stateful information.


Update README.md

add --version=3.0.6370  arguments

@kairu-ms Why the Autorest.Core version must be set to 3.0.6370? I was generating using the latest and it was working.


Nothing happening

I have complied my app with this ane. However nothing happens when i start my game, In ddms i get start u0 activity, but the google+ window never shows up and clicking on my leaderboard button i made does not show a leaderboard, What am i doing wrong?

@skatermem  a lot of time was gone since I last comitted to my ANE... but now I return and great changes are waiting! Stay tuned...


[BUG] Rancher 2.7.2 Continually Logs 'Requesting kubelet certificate regeneration'

Rancher Server Setup

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

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc): RKE1

Proxy/Cert Details:

Information about the Cluster

Kubernetes version: 1.24
Cluster Type (Local/Downstream): Downstream, Imported

If downstream, what type of cluster? (Custom/Imported or specify provider for Hosted/Infrastructure Provider):

User Information

What is the role of the user logged in? (Admin/Cluster Owner/Cluster Member/Project Owner/Project Member/Custom)

If custom, define the set of permissions:
Admin

Describe the bug

Since upgrading to Rancher 2.7.2 our cattle-node-agent pods are requesting kubelet certificate regeneration every 2 minutes. This didn't happen in 2.6.9 and setting the image to 2.7.2-rc7 we also do not see these log entries. Example log entries are below:
time="2023-04-24T10:23:50Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:25:51Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:27:51Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:29:52Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:31:52Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:33:52Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:35:53Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:37:53Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:39:53Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:41:54Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:43:54Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:45:54Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:47:55Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:49:55Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:51:56Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:53:56Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:55:56Z" level=info msg="Requesting kubelet certificate regeneration"
time="2023-04-24T10:57:57Z" level=info msg="Requesting kubelet certificate regeneration"

I've enabled trace level logging to try to get more information about what is going on, I'll paste that in a comment below.
To Reproduce

Upgrade RKE cluster to Rancher 2.7.2. Rancher local cluster is EKS, downstream clusters are all RKE.
Result
Log entries show kubelet certificate regeneration every 2 minutes.
Expected Result

Log entries show the kubelet certificates regenerated on the usual schedule.
Screenshots

Additional context

SURE-6251

@justdan96 If you still have the environment available could you post the full logs of the rancher system agent? (With any sensitive details redacted). Additionally, do you have the generate_serving_certificate value set to true for the kubelet service? This may be an errant log message that is not indicative of actual certs being generated

I can confirm we haven't set generate_serving_certificate to true. Does the log line need to be Info? Seems like it should be Trace or something similar.

I agree, I'll create an issue to fix this. This message can be safely disregarded if generate_serving_certificate is not true and shouldn't impact upgrading to 2.7.2, apologies for the false alarm.

Ticket #41256 - Test Results - ✅
Verified on Rancher (HA Helm) upgrade from v2.7.1 => v2.7.2:

Fresh install of rancher v2.7.1 on EKS (local) cluster w/ k8s v1.24.13-eks-0a21954

Provision two downstream RKE1 Custom clusters, one with a single-node and all roles, the other with 3-nodes and individual roles, both clusters using k8s v1.24.13-rancher2-1

Enable trace level logs and observe cattle-node-agent logs for both downstream clusters

Upgrade Rancher from v2.7.1 => v2.7.2

Observe rancher server successfully upgrades to v2.7.2

Observe clean cattle-node-agent logs for BOTH downstream clusters:

wait/watch for ~10-15 minutes
Requesting kubelet certificate regeneration log is not seen

Verified - clean logs w/ trace level logging enabled; as expected

I see the same begaviour.
Rancher 2.6.13, 1.23.4+rke2r1 - rancher management cluster.
Downstream cluster: 1.17.17 RKE1.
Logs of cattle-node-agents are the same:
level=info msg="Requesting kubelet certificate regeneration"
Should I ignore these messages or it may affect something?

@daemonadmin It looks like this didn't get back ported in time for 2.6.13, if you do not have generate_serving_certificate set to true you can safely ignore this message. I will work on getting a back port open soon

@MisderGAO Could you answer the following

What version of the agent is running on the downstream cluster?
Do you have debug logging on for the agent?
Do you have the field generate_serving_certificate: true on your cluster?

This log message was moved to the debug log level, so if you are still seeing this without having changed the log level the agent image has not been updated. If you do not have the field generate_serving_certificate: true on your cluster then it is likely a separate issue preventing your cluster from connecting.


fix: Make container build stage optional :anchor:

coverage: 80.29% (+0.007%) from 80.283% when pulling c4ee06bd1fe69f3d6fd42de8dfc12f325b7eb9aa on bugfix/make-build-stage-optional into 5a50529e6ce4b125c4bb6d4de44f6385a35c573a on main.


Remove dep on yaml for GCE startup

Write out "yaml" in util.sh. Dying a little. :'(

LGTM assuming shippable and/or travis pass.  Thanks for the fix Zach!

Self-merging on shippable, since P0.


ScrollToTop Problem

in this project ,when i tap the statusbar in top,i found that I can't get scrollsToTop working.

Sorry, I didn't test it with iOS 9 and don't have time to fix it. Pull requests are welcome.

i found the bug.  in your project LGViewController ,viewWillLayoutSubviews will init several times,so it cause a problem when i set scrollsToTop doesn't work.  i do this to solve this problem:
for (UIScrollView *view in self.collectionViewController.view.subviews) {
if ([view isKindOfClass:[UIScrollView class]]) {
view.scrollsToTop = NO;
}
}
then i set the collectview.scrollsToTop  = true. this problems solve.

Ok, thanks, I will check it


XLSX response format for read API

When I have selected the data I want in the Build Report I want to be able to download in XLSX format so that I can use it easily in my tools e.g. Excel
Acceptance

[x] I can make a query to build report API and indicate that I want results returned in xlsx (or excel?)
[x] The results are returned in xlxs format

Tasks

[x] Design the API structure - same as for CSV #5
[x] Implement xlsx format option with conversion to xlsx from JSON response

[x] Basic test

Analysis:
See CSV related issue

Functionality implemented and tested in the Merged code feature/downloads PR #20


Swift 4 compatibilty

@michaelhenry Thank you for the pull request but the build failed. Could you fix that?
https://travis-ci.org/ytakzk/Fusuma/builds/312273771?utm_source=github_status&utm_medium=notification

@ytakzk  sure. :D

@ytakzk I will also include this #239 to my merge request

@michaelhenry Thanks 👍

@ytakzk thanks 👍


Cmake 230906

change the library name so the targets are easier identifiable. added some comments to explain the mechanics.

needs to be merged to next.


A fix for error in tf.layers.conv3d_transpose when inferred batch size

Context
When using the tf.layers.conv3d_tranpose Op with a dynamic batch size and when use_bias=True then there is a well known error that occurs.
The error is due to a tf.reshape Op that chunks together some of the axes before adding the bias for a slight performance improvement.
E.g. in the case of data_format == 'channels_last',
outputs_4d = array_ops.reshape(outputs, [
            outputs_shape[0], outputs_shape[1],
            outputs_shape[2] * outputs_shape[3], outputs_shape[4]
        ])

gives an error when outputs_shape[0] == None, i.e. when batch size is inferred.
Simple fix
To fix this with minimal modification to other code, it would be great if someone could replace outputs_shape[0] with -1 in these two lines:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/layers/convolutional.py#L1627
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/layers/convolutional.py#L1632

Similar with #15655 ？

Yes precisely the same issue.

This has been fixed by #16307, thus this issue can be closed.


feat: Add custom error handler

Lines Of Code

Language
Files
Lines
Code
Comments
Blanks
Complexity
Bytes

Go
14
1202 (+71)
830 (+52)
133 (+7)
239 (+12)
116 (+6)
29K (+2K)

Unit Test Coverage
total:							(statements)				57.4%
changed lines: (statements) 38.5%, coverage is less than 90.0%, consider testing the changes more thoroughly
Coverage of changed lines

File
Function
Coverage

Total

38.5%

grpc_rest.go

100.0%

grpc_rest.go:141
NewGRPCRest
100.0%

handler.go

15.8%

handler.go:85
xhttpCodeResponseModifier
100.0%

handler.go:111
cleanGrpcMetadataResponseModifier
100.0%

handler.go:135
customErrorHandler
5.3%

Coverage diff with base branch

File
Function
Base Coverage
Current Coverage

Total

59.9%
57.4% (-2.5%)

grpc_rest.go
NewGRPCRest
82.4%
83.3% (+0.9%)

handler.go
CleanGrpcMetadataResponseModifier
100.0%
no function

handler.go
NewXhttpCodeResponseModifier
41.7%
no function

handler.go
cleanGrpcMetadataResponseModifier
no function
100.0%

handler.go
customErrorHandler
no function
5.9%

handler.go
xhttpCodeResponseModifier
no function
41.7%

Go API Changes

# github.com/dohernandez/servers
## incompatible changes
CleanGrpcMetadataResponseModifier: removed
NewXhttpCodeResponseModifier: removed

# summary
Inferred base version: v0.9.0
Suggested version: v0.10.0


Dx12 backend fails to enumerate adapters while running in the Visual Studio graphics debugger

Short info header:

GFX version: d002952029facee7aafd52c94230057df6dd298f
OS: Windows 10
GPU: AMD Ryzen 3 3200U with Radeon Vega Mobile Gfx, 2600 Mhz, 2 Core(s), 4 Logical Processor(s)

Error logged when requesting an adapter on the dx12 while running in the Visual Studio graphics debugger:

 ERROR gfx_backend_dx12: Failed enumerating adapters: 0x80004005

Does DX11 work while running the debugger?

Does DX11 work while running the debugger?

It does appear to select an adapter! Looks like it has other issues afterwards though: PanicInfo: panicked at 'not implemented', D:\veloren\gfx\src\backend\dx11\src\device.rs:771:18

The next thing to test is if running the dx12 examples works. If they don't, there's nothing we can't do anything about.

Looks like E_FAIL coming internally.

I tested out this sample: https://github.com/microsoft/DirectX-Graphics-Samples/tree/master/Samples/Desktop/D3D12HelloWorld/src/HelloTriangle. And it also failed only when running in the graphics debugger:

Interestingly, I got a little informational note this time:

which links to https://docs.microsoft.com/en-us/visualstudio/debugger/graphics/visual-studio-graphics-diagnostics-directx-12?view=vs-2019
I would say we can close this issue since it appears to no longer be supported?


feat: standalone markets page mobile responsiveness

This PR

resolves #689
figma design

Screenshots:

375px

640px

768px

1280px

Btw, this consists of the commits of the other PR you've made and I've requested some changes there, please ensure that changes from that PR are also replicated here so you don't have merge conflicts.
In general, the practice should be that these PRs don't merge with each other before working on them.


Output order is weird?

W02-09 blablabla.md
W02-10 blablabla.md
W02-11 blablabla.md
W02-12 blablabla.md
I noticed that it starts from W02-10, and then once the 1xs are done, it goes back to W02-01 and starts from there.
Is this intended? Kinda weird ordering.

noticed that it's mentioned in the readme.md. oh well


Error on np.ndarray transpose method

Bug description
when i put assume_straight_pages = False i receive an error.
The error seems to be in dotr/models/_utils.py extract_rcrops
cv2.warpAffine(
img if channels_last else img.transpose(1, 2, 0),  <-- on this line
# Transformation matrix
cv2.getAffineTransform(src_pts[idx], dst_pts[idx]),
(int(d1[idx]), int(d2[idx])),
)
Code snippet to reproduce the bug
model = ocr_predictor(det_arch='db_resnet50_rotation',
reco_arch='crnn_vgg16_bn',
assume_straight_pages=False,
preserve_aspect_ratio=True,
pretrained=True)
Error traceback
Exception calling application: transpose() received an invalid combination of arguments - got (int, int, int), but expected one of:

(int dim0, int dim1)
(name dim0, name dim1)
Traceback (most recent call last):
File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\grpc_server.py", line 443, in _call_behavior
response_or_iterator = behavior(argument, context)
File ".\src\grpc_server.py", line 24, in extractText
text, confidence = service.extractText(img)
File "D:\Detection\application\ocr-api\src\service.py", line 18, in extractText
result = model([img])
File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\torch\nn\modules\module.py", line 1110, in _call_impl
return forward_call(*input, **kwargs)
File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\torch\autograd\grad_mode.py", line 27, in decorate_context
return func(*args, **kwargs)
File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\doctr\models\predictor\pytorch.py", line 82, in forward
crops, loc_preds = self._prepare_crops(
File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\doctr\models\predictor\base.py", line 74, in _prepare_crops
crops = _OCRPredictor._generate_crops(pages, loc_preds, channels_last, assume_straight_pages)
File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\doctr\models\predictor\base.py", line 60, in _generate_crops
crops = [
File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\doctr\models\predictor\base.py", line 61, in
extraction_fn(page, _boxes[:, :4], channels_last=channels_last)  # type: ignore[operator]
File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\doctr\models_utils.py", line 86, in extract_rcrops
crops = [
File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\doctr\models_utils.py", line 88, in
img if channels_last else img.transpose(1, 2, 0),
TypeError: transpose() received an invalid combination of arguments - got (int, int, int), but expected one of:
(int dim0, int dim1)
(name dim0, name dim1)

Environment
DocTR version: 1.9.0
TensorFlow version: N/A
PyTorch version: 1.11.0+cpu (torchvision 0.10.1+cpu)
OpenCV version: 4.5.3
OS: Microsoft Windows 10 Home
Python version: 3.8.10
Is CUDA available (TensorFlow): N/A
Is CUDA available (PyTorch): No
CUDA runtime version: 11.2.67
GPU models and configuration: Could not collect
Nvidia driver version: Could not collect
cuDNN version: Could not collect
Deep Learning backend
Python 3.8.10 (tags/v3.8.10:3d8993a, May  3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

from doctr.file_utils import is_tf_available, is_torch_available
print(f"is_tf_available: {is_tf_available()}")
is_tf_available: False
print(f"is_torch_available: {is_torch_available()}")
is_torch_available: True

it works if chage the line in this way:
           img if channels_last else img.transpose(0, 2).transpose(0, 1).numpy()

Hi @dvivarelli, I can't reproduce the bug locally when running
model = ocr_predictor(
      det_arch='db_resnet50_rotation',
      reco_arch='crnn_vgg16_bn',
      assume_straight_pages=False,
      preserve_aspect_ratio=True,
      pretrained=True
)

on different images. Can you attach the image on which it doesn't work to this issue ? Otherwise, if it doesn't come from an edge-case image it may come from the environment (openCV version, etc...)

Hi @dvivarelli, any updates ?

Hi @dvivarelli can we close this ? Or does the problem still exists ? :)

no response and cannot be reproduced - close


Add Cgroup V1 block IO integration test

This adds Cgroups V1 block io integration test

The CI is likely to fail for the same reason as https://github.com/containers/youki/pull/528#issuecomment-991806762
The test also give same error for youki on my local machine, but runc passes all the tests.
Once that issue is fixed, I'll run the tests on youki as well and update here.

@YJDoc2 I fixed this problem here

Oh yes, I tested youki with that change and it passes the tests as well. I'm waiting for that PR to be merged so it will pass in the CI itself, and the I can ask for reviews. Thanks :+1:

Codecov Report

Merging #537 (d05bb63) into main (667ef6a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #537   +/-   ##
=======================================
  Coverage   60.52%   60.52%
=======================================
  Files          98       98
  Lines       12626    12626
=======================================
  Hits         7642     7642
  Misses       4984     4984

Hey, sorry for the mistakes :sweat_smile: :sweat_smile:
I had realized that the device reading code can be extracted into function, but forgot to do that before making commit and asking review :sweat_smile:
I have fixed that, as well as improved error reporting as you have suggested. One of the issue that it caused is that we need to clone the path, as fs::read_to_string takes the path by value.
I'm not sure why read_to_string needs to take it by value, as I checked rust src, and it eventually calls as_ref on it, which needs only by ref, not by value... :thinking:
Anyways, please take a look now, thanks :)

I have fixed that, as well as improved error reporting as you have suggested. One of the issue that it caused is that we need to clone the path, as fs::read_to_string takes the path by value.

Can you point to a specific example? PathBuf implements AsRef so you should not need to clone it.

Can you point to a specific example? PathBuf implements AsRef so you should not need to clone it.

Yes you're right, I have been using it incorrectly :sweat:
I have removed the clone calls, so PTAL.

Looks good! @utam0k Will this conflict with #514? If it does it might make more sense to merge yours first, as yours looks trickier to adapt to the changes than the other way around.

Looks good! @utam0k Will this conflict with #514? If it does it might make more sense to merge yours first, as yours looks trickier to adapt to the changes than the other way around.

Thank you for taking care of my pr. I still have a few things to do on that PR of mine, so you can merge this one first!


Update aquaskk to 4.4.5

After making all changes to the cask:

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

Thank you for the contribution. It was merged directly as 2b53d7aada417b1b6228d0d2bb9c185d12f9e87b to keep commit history cleaner. Your contribution is still credited to you.


UnicodeDecodeError from HelicsMessage.data for messages containing long strings

Summary
HelicsMessage.data raises a UnicodeDecodeError  for messages containing long strings. I've tried this both by creating a HelicsMessage object and assigning the data property to a string, and by passing a string to HelicsEndpoint.send_data(). For short strings the data is decoded successfully, but for longer strings an error is raised. I have also tried helicsMessageSetString() and helicsMessageGetString() directly with the same result.
In some cases a UnicodeDecodeError is not raised, but I have seen extra (apparently random) characters appended to the end of the decoded string. I suspect the root cause of both errors is the same, I just randomly got lucky with data that was incorrect, but could still be decoded as a valid unicode string.
Example errors
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcd in position 99: unexpected end of data
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 251: invalid start byte

Versions

python version: 3.9.7
helics version: 3.0.1.post7

Examples
These examples consistently raise a UnicodeDecodeError.
Using HelicsEndpoint.send_data()
# sending
message = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
          'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
          'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
          'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
          'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
          'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
          'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
          'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
endpoint.send_data(message, destination="foo/ep")

# receiving in federate "foo"
endpoint = federate.register_endpoint("ep")
# ...
if endpoint.has_message():
    message = endpoint.get_message().data

Sending a HelicsMessage object
message = endpoint.create_message()
message.destination = "foo/ep"
message.data = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
               'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
               'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
               'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
               'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
               'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
               'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
               'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
endpoint.send_data(message)

# receiving in federate "foo" (same as previous example)
endpoint = federate.register_endpoint("ep")
# ...
if endpoint.has_message():
    message = endpoint.get_message().data

Oh my. Python here is just running decode on the byte string that HELICS sends. Maybe there's a length at which the C++ code does something different that causes this to fail?
cc @phlptp thoughts?

Maybe there's a length at which the C++ code does something different that causes this to fail?

@kdheepak It could be, I haven't been able to get it reproduced with a short string. I tried doing my own encode/decode and use the raw_data property and it seemed to work reliably over a handful of tests. I think the only difference there is that helicsMessageGetBytes() is used instead of helicsMessageGetString().

I don't know how a different length could cause something to fail.  There are some differences between helicsMessageGetString() and helicsMessageGetBytes(), so it is possible something going on there.  Otherwise HELICS has no knowledge of anything related to unicode

Thanks for reporting this issue! This is resolved in Python for now and available in https://github.com/GMLC-TDC/pyhelics/releases/tag/v3.0.1.post8, and a fix will be made to HELICS as well.


Create an IRC welcome bot

Perhaps could adapt Shauna's project https://github.com/shaunagm/WelcomeBot. Looks pretty straightforward.
(I presume this is where you got the idea)

I've used in the past Supybot which is fairly easy to install and configure and it's fully featured. It allows automated management of the channel, logging, I even created a ticket query system to keep track of the new tickets being filed or solved ones. http://sourceforge.net/projects/supybot/

Ended up forking WelcomeBot after all: https://github.com/falconry/WelcomeBot


Use local assets for fontawesome for isolated environments.

Currently FontAwesome uses Cloudflare to serve font assets, however all
of the other assets are delivered locally. This standardizes the css/js/fonts
to use all local assets from /static/.
Just also want to say that we're super big fans of snappass at Speedtest.net - thank you for open sourcing it! 👍

Much better pattern to serve the files locally, thanks for the PR.

Just also want to say that we're super big fans of snappass at Speedtest.net - thank you for open sourcing it!

Very happy to hear it! Thanks for contributing


background tile doesn't appear in some devices randomly

i used the tileview module in one of my projects and it works fine but unfortunately the map i used doesn't appear on some devices and the problem that i tested on 2 device which is galaxy note and works on one of them and didn't work on the second which is very strange
this the link for the app
it is arabic version
https://play.google.com/store/apps/details?id=com.dana.bassem.wa7a
hope anybody find a solution
thanks in advance

you need to provide more information, specifically steps to reproduce the issue.  have you logged the catch blocks of your BitmapProvider.decode method?

Thanks for quick reply, actually i'm the project manager of the project and my colleague is the developer, i i'll ask him and get back to you.
but what i know exactly it appears on devices randomly i can send you the code to check if you can.
Thanks

First Thanks alot for ur time and effort to reply about our Question .
we followed ur libarary sample
and this is our code
it works fine in most of devices but some random devices didnt work . It just show gray screen with marker . (Not the image which appear in normal case )
package com.dana.bassem.wa7a.fragment;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.dana.bassem.wa7a.R;
import com.dana.bassem.wa7a.views.MTitleView;
import com.qozix.tileview.TileView;
import com.qozix.tileview.markers.MarkerLayout;
import com.qozix.tileview.widgets.ZoomPanLayout;
import java.util.Locale;
/**

Created by Deda on 3/19/2016.
*/
public class LocationFragment extends Fragment  {
MTitleView tileView;
private int scrollX;
private int scrollY;
private float currentScale;
private static final String SCALE_KEY = "scale_key_X";
private static final String SCROLL_X_KEY = "x_key_X";
private static final String SCROLL_Y_KEY = "y_key_X";
/**

Setup the view for the tile .
*/
private void setupView()
{
if( tileView == null )
{
tileView = new MTitleView(getActivity(), null);
tileView.setId(R.id.tile_view_location_layout);
tileView.setSaveEnabled(true);
}

}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
{
setupView();
 // size of original image at 100% mScale
 tileView.setSize(3500, 2300);

 // we won't use a down sample here, so color it similarly to tiles
 tileView.setBackgroundColor(0xFFe7e7e7);

 // detail levels
 tileView.addDetailLevel(0.0125f, "locations/125/%d_%d.png");
 tileView.addDetailLevel(0.2500f, "locations/250/%d_%d.png");
 tileView.addDetailLevel(0.5000f, "locations/500/%d_%d.png");
 tileView.addDetailLevel(1.0000f, "locations/1000/%d_%d.png");

 configureView();
 LoadTileViewInstanceFromPreferences();
 addMarker();
 return tileView;

}
private void addMarker()
{
ImageView marker = new ImageView(getActivity());
marker.setTag(new double[]{2430, 1080 });
marker.setImageResource(R.drawable.map_marker_normal);
tileView.getMarkerLayout().setMarkerTapListener(markerTapListener);
tileView.addMarker(marker, 2430, 1080, null, null);
}
private MarkerLayout.MarkerTapListener markerTapListener = new MarkerLayout.MarkerTapListener() {
 @Override
 public void onMarkerTap(View view, int x, int y)
 {
     // get reference to the TileView
     TileView tileView = getTileView();

     // we saved the coordinate in the marker's tag
     final double[] position = (double[]) view.getTag();

     // lets center the screen to that coordinate
     tileView.slideToAndCenter(position[0], position[1]);

     View popUpView = getActivity().getLayoutInflater().inflate(R.layout.pin_pop_up_location, null);

     TextView tv_coordinates  = (TextView) popUpView.findViewById(R.id.tv_coordinates);
     tv_coordinates.setText("26.3444707,50.05786");

     Button showLocation = (Button) popUpView.findViewById(R.id.btn_show_location_on_google_map);
     showLocation.setOnClickListener(new View.OnClickListener()
     {
         @Override
         public void onClick(View v)
         {
             showLocationOnGoogleMap(26.3444707, 50.05786 );
         }
     });
     tileView.addCallout(getActivity(), popUpView, position[0], position[1], -0.5f, -0.5f);
 }

};
private void showLocationOnGoogleMap(double latitude,double longitude )
{
String uri = String.format(Locale.ENGLISH, "geo:%f,%f" +"?z=16", latitude, longitude);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
getActivity().startActivity(intent);
}
@Override
public void onPause() {
try
{
super.onPause();
SaveTileViewInstanceToPreferences();
//            this.tileView.pause();
}
catch (Exception localException)
{
}
}
void SaveTileViewInstanceToPreferences()
{
try {
if(tileView != null)
{
SharedPreferences prefs = getActivity().getSharedPreferences("location", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
currentScale = tileView.getScale();
scrollX = tileView.getScrollX();
scrollY = tileView.getScrollY();
editor.putInt(SCROLL_X_KEY, scrollX);
editor.putInt(SCROLL_Y_KEY, scrollY);
editor.putFloat(SCALE_KEY, currentScale);
editor.apply();
return;
}
} catch(Exception e) {
e.printStackTrace();
}
}
@Override
public void onResume() {
try
{
super.onResume();
LoadTileViewInstanceFromPreferences();
//            this.tileView.resume();
}
catch (Exception localException)
{
}
}
@Override
public void onStop() {
 try
 {
     SaveTileViewInstanceToPreferences();
     super.onStop();
 }
 catch (Exception localException)
 {
 }

}
public void onDestroy()
{
try
{
super.onDestroy();
if (this.tileView != null)
{
this.tileView.destroy();
this.tileView = null;
}
}
catch (Exception localException)
{
}
}
void LoadTileViewInstanceFromPreferences()
{
try {
SharedPreferences prefs = getActivity().getSharedPreferences("location", Context.MODE_PRIVATE);
currentScale = prefs.getFloat(SCALE_KEY, 0.0125f);
scrollX = prefs.getInt(SCROLL_X_KEY, 2430);
scrollY = prefs.getInt(SCROLL_Y_KEY, 1080);
return;
} catch(Exception e) {
e.printStackTrace();
}
}
private void configureView()
{
// test higher than 1
tileView.setScaleLimits(0, 3);
 // center markers along both axes
 tileView.setMarkerAnchorPoints( -0.5f, -0.4f );

 // start small and allow zoom
 tileView.setScale(0.0f);

 // center the frame
 frameTo( 2430, 1080 );

 // we're running from assets, should be fairly fast decodes, go ahead and render asap
 tileView.setShouldRenderWhilePanning(true);

//        =======================================
tileView.addZoomPanListener(new ZoomPanLayout.ZoomPanListener() {
@Override
public void onPanBegin(int x, int y, Origination origin) {
        }

        @Override
        public void onPanUpdate(int x, int y, Origination origin) {

        }

        @Override
        public void onPanEnd(int x, int y, Origination origin) {

        }

        @Override
        public void onZoomBegin(float scale, Origination origin) {

        }

        @Override
        public void onZoomUpdate(float scale, Origination origin) {

            LocationFragment.this.tileView.getDetailLevelManager().invalidateAll();
            LocationFragment.this.tileView.invalidate();
        }

        @Override
        public void onZoomEnd(float scale, Origination origin)
        {
            LocationFragment.this.tileView.getDetailLevelManager().invalidateAll();
            LocationFragment.this.tileView.invalidate();
        }
    });

}

public TileView getTileView() {
    return tileView;
}

/**
 * This is a convenience method to scrollToAndCenter after layout (which won't happen if called directly in onCreate
 */
public void frameTo(final double x, final double y)
{
    getTileView().post(new Runnable() {
        @Override
        public void run() {
            if (getTileView() != null)
                getTileView().scrollToAndCenter(x, y);
        }
    });
}

}

There's nothing obviously wrong with the TileView setup, although I cant see the definition for the class MTitleView.
I do notice tho that you're not supplying layout params, which is not an issue with TileView, but may cause problems when returning a View in onCreateView...  I don't know what kind of ViewGroup your fragment is loading into, but you might want to try to supply LayoutParams (presumably MATCH_PARENT on both axes) before you return it in onCreateView.  See http://upshots.org/android/android-dynamic-fragment-not-filling-parent
I can't really debug this for you if I can't recreate it.  You said that it happens "on some devices" -can you reproduce it on any emulator images?  That's your first step, is figuring out how to recreate the problem, then you can do things like log when tiles are decoded (or not), etc, to narrow down the issue.
One thing I'd try is to isolate the problem.  For example, if you use the same configuration and custom classes, but in an Activity instead of a Fragment, and use setContentView, do you still see the problem?  Try things like that, with the goal of being able to give precise instructions and Step to Reproduce the problem.

The MTileView Class
and I use all things in Fragment not Activity
package com.dana.bassem.wa7a.views;
import android.content.Context;
import android.util.Log;
import com.dana.bassem.wa7a.events.ShowMarkersListener;
import com.qozix.tileview.TileView;
import com.qozix.tileview.detail.DetailLevel;
/**

Created by Deda on 3/16/2016.
*/

public class MTitleView extends TileView {
ShowMarkersListener mListener ;
private boolean markerIsShown = false;
public MTitleView(Context context, ShowMarkersListener listener)
{
    super(context);
    mListener = listener ;
}

@Override
public void onDetailLevelChanged(DetailLevel detailLevel)
{
    super.onDetailLevelChanged(detailLevel);
    Log.d("hello"," Marker " + detailLevel.getRelativeScale() );

    if( detailLevel.getScale() == 1F)
    {
        if(mListener != null)
        {
            mListener.showMarkers();
            markerIsShown= true;
            Log.d("hello", "value" + "show Marker " + detailLevel.getScale() );
        }

    }
    else if(markerIsShown)
    {
        if(mListener != null)
        {
            mListener.hideMarkers();
            markerIsShown = false;
            Log.d("hello", "value" + "diable Marker");
        }

    }
}

}
and Xml layout is

Please format your code in the future.
Again, nothing is obviously wrong.
Did you do what I suggested in my last post?  Do you have STR?
Please pay attention to what information is requested - "i use Fragments not Activities" is not a valid response - I suggested you try it in an Activity to see if it's a potential layout issue (which I suspect it is).  I'm pretty sure this has nothing to do with TileView,  but let's confirm that by doing proper debug.  Other than it being easy for you, why did you just post more code, and not answer my specific questions?
As the author of an open source library, I'm interested in any problems with the library that someone finds, but it's not my responsibility to debug your app for you.
Please refer to my last post for your next steps.
Thanks.

Hello moagrius,
First of all thanks for your help. and we tried all suggestion you said but unfortunately the problem hasn't been solved. is it possible to debug it yourself and fix it as a chargeable task? because we hit the wall in this bug.
appreciate your co-operation

is your repo public?

No i can send you the source code of the application should i send it here as a link in dropbox or by email?

I don't use Dropbox.  your best bet would be a public repo

@moagrius here you are
https://github.com/deda9/WahatApp
please check and update me how much it should cost to fix it, and thanks for your co-opeation

i'll take a quick look (without charging you).
what devices + api does the bug appear?  e.g., Nexus 5X API 23 - please list all you can so i have a better chance of finding an emulator image.
it'll be almost impossible to debug if i can reproduce the issue.  any other STR?

Thanks @moagrius
Appreciate your co-operation here yo are
HUAWEI Y560-U02  Android  4.4.2
Samsung Galaxy 6s edge Android 5.0  ( we tested it on 2 [ Samsung Galaxy 6s edge Android 5.0  ] devices, it works on one and didn't work on the other, so we think it has something in the settings but can't reach the reason )
also an older Samsung device with Android 4.4.2
Hope you can reproduce the issue, i understand well you have to see it to debug but really we couldn't find more because it works on some devices randomly as i mentioned in [ Samsung Galaxy 6s edge Android 5.0  ]
Thanks in advance

i'll take a look when i can, probably tomorrow

i tried it on 8 different AVD and Genymotion emulators; it worked as expected on each.
in order to help debug, i need reliable STR and the exact emulator image that'll show the problem.

Thanks moagrius for your co-operation, will try to find an image that shows the problem and send you, because till now it happens in real devices only.

Hello @moagrius ,
hope you are fine, after many tries we found the problem, as we develop the application in Arabic language and for Arabic users, so many of the users have their system language as Arabic, so in this case the image doesn't appear. if the system language are something other than Arabic language it works fine.
Could you check it please, i know it is a long time since we discuss this but we takes time to find the problem and can represent it.
Thanks in advance

I think I should open a new ticket to be clear and as it is a new point

i have no idea why system language would matter.  are you path names in arabic?  i doubt this has anything to do with TileView, it's probably just a matter of file paths or something where string encoding matters.

i just test your demo and it has the same problem


vsock backend updates

This adds a possible fix for docker/for-mac#104 as well as some comments which I hope will make the current situation WRT the checks for reply_ring fullness (mentioned on #50) somewhat clearer.
Signed-off-by: Ian Campbell<EMAIL_ADDRESS>

The added documentation indeed makes the code clearer. Not terribly familiar with the code itself, but it LGTM

I'm running beta25 which should have these changes in it but am still seeing this crash:
9/12/16 12:00:27.181 PM Docker[47588]: Assertion failed: (!REPLY_RING_EMPTY(sc)), function send_response_common, file src/pci_virtio_sock.c, line 950.
9/12/16 12:00:27.181 PM Docker[47588]: virtio-net-vpnkit: initialising, opts="uuid=32529f86-e3f9-40d5-a388-c47224df3252,path=/Users/iboehman/Library/Containers/com.docker.docker/Data/s50,macfile=/Users/iboehman/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/mac.0"
9/12/16 12:00:27.181 PM Docker[47588]: Interface will have uuid 32529f86-e3f9-40d5-a388-c47224df3252
9/12/16 12:00:27.181 PM Docker[47588]: Connection established with MAC=c0:ff:ee:c0:ff:ee and MTU 1500
9/12/16 12:00:27.181 PM Docker[47588]: virtio-9p: initialising path=/Users/iboehman/Library/Containers/com.docker.docker/Data/s40,tag=db
9/12/16 12:00:27.182 PM Docker[47588]: virtio-9p: initialising path=/Users/iboehman/Library/Containers/com.docker.docker/Data/s51,tag=port
9/12/16 12:00:27.182 PM Docker[47588]: linkname /Users/iboehman/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
9/12/16 12:00:27.182 PM Docker[47588]: COM1 connected to /dev/ttys001
9/12/16 12:00:27.183 PM Docker[47588]: COM1 linked to /Users/iboehman/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
9/12/16 12:00:27.183 PM Docker[47588]: received sigusr1, pausing
9/12/16 12:00:27.183 PM Docker[47588]: received sigusr2, unpausing
9/12/16 12:00:27.183 PM Docker[47588]: received sigusr1, pausing
9/12/16 12:00:27.183 PM Docker[47588]: received sigusr2, unpausing
9/12/16 12:00:27.188 PM Docker[47587]: PPP.listen: closing connection
9/12/16 12:00:27.189 PM Docker[47586]: Fatal unexpected exception: Socket.Closed
9/12/16 12:00:27.201 PM Docker[37616]: Reap com.docker.osxfs (pid 47586): exit status 1
9/12/16 12:00:27.222 PM Docker[37623]: VM shutdown at 2016-09-12 12:00:27 -0400 EDT
9/12/16 12:00:27.229 PM Docker[37616]: Reap com.docker.driver.amd64-linux (pid 47588): exit status 0
9/12/16 12:00:27.244 PM Docker[47587]: Socket.Stream: caught Uwt.Uwt_error(Uwt.ENOTCONN, "shutdown", "")

@yacn The changes here which relate to #50 are only code clarity changes, there is no fix as yet.
I'm looking into integrating a newer version of the vsock protocol and corresponding Linux frontend patches which I hope will address this, however I am still chasing down some issues with that new code.


[ENH] Abstract base class for constraint based structure learning

Signed-off-by: Adam Li<EMAIL_ADDRESS>

Follow on to: #20
Part of #18
Requires #19 and #20 to be merged first.
Changes proposed in this pull request:

Before submitting

[ ] I've read and followed all steps in the Making a pull request
section of the CONTRIBUTING docs.
[ ] I've updated or added any relevant docstrings following the syntax described in the
Writing docstrings section of the CONTRIBUTING docs.
[ ] If this PR fixes a bug, I've added a test that will fail without my fix.
[ ] If this PR adds a new feature, I've added tests that sufficiently cover my new functionality.

After submitting

[ ] All GitHub Actions jobs for my pull request have passed.

Codecov Report

Merging #21 (2905dfa) into main (940828c) will increase coverage by 1.68%.
The diff coverage is n/a.

:exclamation: Current head 2905dfa differs from pull request most recent head c853451. Consider uploading reports for the commit c853451 to get more accurate results

@@            Coverage Diff             @@
##             main      #21      +/-   ##
==========================================
+ Coverage   75.21%   76.90%   +1.68%
==========================================
  Files          11        7       -4
  Lines         585      342     -243
  Branches      116       55      -61
==========================================
- Hits          440      263     -177
+ Misses        104       63      -41
+ Partials       41       16      -25

Impacted Files
Coverage Δ

dodiscover/ci/oracle.py
47.36% <0.00%> (-39.59%)
:arrow_down:

dodiscover/ci/g_test.py
61.01% <0.00%> (-2.62%)
:arrow_down:

dodiscover/_protocol.py
60.86% <0.00%> (-0.67%)
:arrow_down:

dodiscover/ci/fisher_z_test.py
96.55% <0.00%> (-0.33%)
:arrow_down:

dodiscover/context.py

dodiscover/typing.py

dodiscover/constraint/utils.py

dodiscover/constraint/skeleton.py

dodiscover/ci/kernel_test.py
92.64% <0.00%> (+2.43%)
:arrow_up:

dodiscover/ci/base.py
91.66% <0.00%> (+8.33%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Will merge this in now since this was approved. Will now focus on the PC algorithm example and incorporating thoughts/feedback from the discussion.


Add link to Yandex Documents in DialogAddDocument

[CHARTS-9020]

i18n-check

The following components have not been translated
connections.yadocs.view (en)connections.yadocs.view (ru)

Wait for the reviewers to check your changes in Weblate and try running github action again.

i18n-check

The following components have not been translated
connections.yadocs.view (en)connections.yadocs.view (ru)

Wait for the reviewers to check your changes in Weblate and try running github action again.

i18n-check

Errors occurred when merging changes from your branch with the Weblate branch.
```
warning: skipped previously applied commit 87b78d0f
warning: skipped previously applied commit a6433e9e
hint: use --reapply-cherry-picks to include skipped commits
hint: Disable this message with "git config advice.skippedCherryPicks false"
Rebasing (1/1)
Auto-merging .lintstagedrc.json
CONFLICT (add/add): Merge conflict in .lintstagedrc.json
Auto-merging src/i18n-keysets/component.dialog-relations.view/en.json
CONFLICT (add/add): Merge conflict in src/i18n-keysets/component.dialog-relations.view/en.json
Auto-merging src/i18n-keysets/component.dialog-relations.view/ru.json
CONFLICT (add/add): Merge conflict in src/i18n-keysets/component.dialog-relations.view/ru.json
Auto-merging src/i18n-keysets/connections.yadocs.view/en.json
CONFLICT (add/add): Merge conflict in src/i18n-keysets/connections.yadocs.view/en.json
Auto-merging src/i18n-keysets/connections.yadocs.view/ru.json
CONFLICT (add/add): Merge conflict in src/i18n-keysets/connections.yadocs.view/ru.json
Auto-merging src/i18n-keysets/dash.popup-widgets-order.view/en.json
CONFLICT (add/add): Merge conflict in src/i18n-keysets/dash.popup-widgets-order.view/en.json
Auto-merging src/i18n-keysets/dash.popup-widgets-order.view/ru.json
CONFLICT (add/add): Merge conflict in src/i18n-keysets/dash.popup-widgets-order.view/ru.json
Auto-merging src/i18n-keysets/dash.text-dialog.edit/en.json
CONFLICT (add/add): Merge conflict in src/i18n-keysets/dash.text-dialog.edit/en.json
Auto-merging src/i18n-keysets/dash.text-dialog.edit/ru.json
CONFLICT (add/add): Merge conflict in src/i18n-keysets/dash.text-dialog.edit/ru.json
Auto-merging src/i18n-keysets/sql/en.json
CONFLICT (add/add): Merge conflict in src/i18n-keysets/sql/en.json
Auto-merging src/i18n-keysets/sql/ru.json
CONFLICT (add/add): Merge conflict in src/i18n-keysets/sql/ru.json
Auto-merging src/server/components/charts-engine/controllers/embeds.ts
CONFLICT (add/add): Merge conflict in src/server/components/charts-engine/controllers/embeds.ts
Auto-merging src/server/modes/charts/plugins/datalens/preparers/line-time/index.ts
CONFLICT (add/add): Merge conflict in src/server/modes/charts/plugins/datalens/preparers/line-time/index.ts
Auto-merging src/server/modes/charts/plugins/datalens/preparers/line/helpers/line-mappers/mapDataToLines.ts
CONFLICT (add/add): Merge conflict in src/server/modes/charts/plugins/datalens/preparers/line/helpers/line-mappers/mapDataToLines.ts
Auto-merging src/shared/modules/index.ts
CONFLICT (add/add): Merge conflict in src/shared/modules/index.ts
Auto-merging src/shared/types/dash.ts
CONFLICT (add/add): Merge conflict in src/shared/types/dash.ts
Auto-merging src/shared/types/feature.ts
CONFLICT (add/add): Merge conflict in src/shared/types/feature.ts
Auto-merging src/shared/types/wizard/index.ts
CONFLICT (add/add): Merge conflict in src/shared/types/wizard/index.ts
Auto-merging src/ui/components/DashKit/plugins/Control/Control.tsx
CONFLICT (add/add): Merge conflict in src/ui/components/DashKit/plugins/Control/Control.tsx
Auto-merging src/ui/components/DashKit/plugins/Control/utils.ts
CONFLICT (add/add): Merge conflict in src/ui/components/DashKit/plugins/Control/utils.ts
Auto-merging src/ui/components/EntryContextMenu/constants.ts
CONFLICT (add/add): Merge conflict in src/ui/components/EntryContextMenu/constants.ts
Auto-merging src/ui/components/common/Datepicker/Datepicker.js
CONFLICT (add/add): Merge conflict in src/ui/components/common/Datepicker/Datepicker.js
Auto-merging src/ui/constants/connections.ts
CONFLICT (add/add): Merge conflict in src/ui/constants/connections.ts
Auto-merging src/ui/constants/visualizations/line.ts
CONFLICT (add/add): Merge conflict in src/ui/constants/visualizations/line.ts
Auto-merging src/ui/constants/visualizations/scatter.ts
CONFLICT (add/add): Merge conflict in src/ui/constants/visualizations/scatter.ts
Auto-merging src/ui/libs/DatalensChartkit/ChartKit/helpers/action-params-handlers.ts
CONFLICT (add/add): Merge conflict in src/ui/libs/DatalensChartkit/ChartKit/helpers/action-params-handlers.ts
Auto-merging src/ui/libs/DatalensChartkit/ChartKit/helpers/apply-hc-handlers.ts
CONFLICT (add/add): Merge conflict in src/ui/libs/DatalensChartkit/ChartKit/helpers/apply-hc-handlers.ts
Auto-merging src/ui/libs/DatalensChartkit/components/Control/Control.tsx
CONFLICT (add/add): Merge conflict in src/ui/libs/DatalensChartkit/components/Control/Control.tsx
Auto-merging src/ui/libs/DatalensChartkit/components/Control/Items/Items.js
CONFLICT (add/add): Merge conflict in src/ui/libs/DatalensChartkit/components/Control/Items/Items.js
Auto-merging src/ui/libs/DatalensChartkit/modules/data-provider/charts/index.ts
CONFLICT (add/add): Merge conflict in src/ui/libs/DatalensChartkit/modules/data-provider/charts/index.ts
Auto-merging src/ui/libs/DatalensChartkit/modules/datalens-chartkit-custom-error/datalens-chartkit-custom-error.ts
CONFLICT (add/add): Merge conflict in src/ui/libs/DatalensChartkit/modules/datalens-chartkit-custom-error/datalens-chartkit-custom-error.ts
Auto-merging src/ui/units/connections/components/Page/utils.ts
CONFLICT (add/add): Merge conflict in src/ui/units/connections/components/Page/utils.ts
Auto-merging src/ui/units/connections/components/custom-forms/Yadocs/components/DialogAddDocument/DialogAddDocument.tsx
CONFLICT (add/add): Merge conflict in src/ui/units/connections/components/custom-forms/Yadocs/components/DialogAddDocument/DialogAddDocument.tsx
Auto-merging src/ui/units/connections/constants/index.ts
CONFLICT (add/add): Merge conflict in src/ui/units/connections/constants/index.ts
Auto-merging src/ui/units/dash/containers/Dialogs/DialogRelations/components/Content/Row.tsx
CONFLICT (add/add): Merge conflict in src/ui/units/dash/containers/Dialogs/DialogRelations/components/Content/Row.tsx
Auto-merging src/ui/units/dash/containers/Dialogs/DialogRelations/hooks/helpers.ts
CONFLICT (add/add): Merge conflict in src/ui/units/dash/containers/Dialogs/DialogRelations/hooks/helpers.ts
Auto-merging src/ui/units/wizard/actions/dialog.ts
CONFLICT (add/add): Merge conflict in src/ui/units/wizard/actions/dialog.ts
Auto-merging src/ui/units/wizard/actions/placeholder.ts
CONFLICT (add/add): Merge conflict in src/ui/units/wizard/actions/placeholder.ts
Auto-merging src/ui/units/wizard/components/Dialogs/DialogColor/ColorSettingsContainer/ColorSettingsContainer.tsx
CONFLICT (add/add): Merge conflict in src/ui/units/wizard/components/Dialogs/DialogColor/ColorSettingsContainer/ColorSettingsContainer.tsx
Auto-merging src/ui/units/wizard/components/Dialogs/DialogColor/DialogColor.tsx
CONFLICT (add/add): Merge conflict in src/ui/units/wizard/components/Dialogs/DialogColor/DialogColor.tsx
Auto-merging src/ui/units/wizard/components/Dialogs/DialogColor/DialogColorPalette/DialogColorPalette.tsx
CONFLICT (add/add): Merge conflict in src/ui/units/wizard/components/Dialogs/DialogColor/DialogColorPalette/DialogColorPalette.tsx
Auto-merging src/ui/units/wizard/components/ValuesList/ValuesList.tsx
CONFLICT (add/add): Merge conflict in src/ui/units/wizard/components/ValuesList/ValuesList.tsx
Auto-merging src/ui/units/wizard/containers/Wizard/SectionVisualization/PlaceholdersContainer/ColorsPlaceholder/ColorsPlaceholder.tsx
CONFLICT (add/add): Merge conflict in src/ui/units/wizard/containers/Wizard/SectionVisualization/PlaceholdersContainer/ColorsPlaceholder/ColorsPlaceholder.tsx
Auto-merging src/ui/units/workbooks/components/EntryActions/EntryActions.tsx
CONFLICT (add/add): Merge conflict in src/ui/units/workbooks/components/EntryActions/EntryActions.tsx
Auto-merging tests/docker-compose.e2e.yml
CONFLICT (add/add): Merge conflict in tests/docker-compose.e2e.yml
Auto-merging tests/page-objects/wizard/SectionVisualization.ts
CONFLICT (add/add): Merge conflict in tests/page-objects/wizard/SectionVisualization.ts
error: could not apply 56f509ac... Add link to Yandex Documents in DialogAddDocument
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm ", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 56f509ac... Add link to Yandex Documents in DialogAddDocument
 (1)
```

**Resolve conflicts according to instructions**
1. Switch to the current branch associated with this pull request.
```
git checkout add-link-to-yadocs
```
2. Add Weblate as remote:
```
git remote add weblate https://weblate.gravity-ui.com/git/datalens/add-link-to-yadocs-530/chartkit-530/
git remote update weblate
```
3. Merge Weblate changes:
```
git merge weblate/add-link-to-yadocs
```
4. Resolve conflicts:
```
edit ...
git add ...
git commit
```
5. Push changes to upstream repository, Weblate will fetch merge from there:
```
git push origin
```

i18n-check

The following components have not been translated
component.dialog-relations.view (en)component.dialog-relations.view (ru)

Wait for the reviewers to check your changes in Weblate and try running github action again.


Consider making wormc a thinner client

I imagine this will only ever pop up when developing on worm for most users, but when working on #70 I spent a while attempting to debug why the new config options weren't working, and it was due to my rcfile using my system wormc, rather than ~/devel/worm/wormc.
That said, it would also be of benefit to reduce down configuration to a "single source of truth" -- currently to add a configuration option you:

add a new IPC atom in src/atoms.nim
add it to the Config type in src/types.nim
implement boilerplate for the option in src/wormc.nim
implement the setter for the option in src/events/clientmessage.nim
and finally, you can actually use the configuration option in your code

You could get rid of 1 and 3 in a single step (as well as what I mention above, avoiding errors from an easy-to-make mistake) by simply having wormc take its input and send it directly to worm which handles it in its entirety.

Certainly not a bad idea, I just did it with regular atoms as that's how it's traditionally done in X11.

The benefit of the current way, however, is that worm itself only accepts well-formed atoms, so there's not much room for the WM itself to crash with a malformed command on some edge case (compared to wormc; I'd much rather have wormc crash than my whole environment)

I mean the fact is, worm can crash from wormc calls already. Setting either of the values in button-offset to -1, for example, I believe will crash worm.
That said I feel that it's certainly possible to have robust enough error handling without making things awful -- you could probably factor out a lot of the IPC code in clientmessage.nim then use that extra breathing room to just ensure input is well validated.

I mean the fact is, worm can crash from wormc calls already. Setting either of the values in button-offset to -1, for example, I believe will crash worm.

:grimacing: should get that fixed. I do agree though, I think this might be something useful to look at in the future, but not an immediate priority because it doesn't really affect the user experience.

Maybe I'm interpreting this issue wrong, but I'm interested* in making/modifying a really minimalist floating WM and am not seeing of where/how Worm renders the window controls etc w/floating mode. Especially with wm.nim being 1K+ LoC. Is Pixie part of that issue? Or just a side-effect of having more functionality/tweaks?
Technical (more of an X11 thing I guess): could text (for title and panels, best w/opaque outline/shadow) be rendered over other contents (be it the parent window or other windows) without needing compositing? This doesn't seem possible (at least not currently) with XFWM.
*= I don't have Nim "legs" yet (not sure if there's a Nim-specific metaphor. Crown isn't fitted?). Probably over my head (the goal, not the crown). Sorry.

*= I don't have Nim "legs" yet (not sure if there's a Nim-specific metaphor. Crown isn't fitted?). Probably over my head (the goal, not the crown). Sorry.

No idea ;)
I think this is the wrong issue for you, this is about changes to the client used to interact with worm.
The problem with wm.nim being so big is code duplication. Each button takes maybe 10 lines of code to draw + title. There are 3 + title. That's 4 * 10 = 40. There are 3 regions of the titlebar to draw buttons. 40 * 3 = 120. It's really not something I like and I am definitely looking into significantly refactoring that code.however, just look in the renderTop function, and through the mess you will find your answers ;)

Technical (more of an X11 thing I guess): could text (for title and panels, best w/opaque outline/shadow) be rendered over other contents (be it the parent window or other windows) without needing compositing? This doesn't seem possible (at least not currently) with XFWM.

I'm not quite sure what you're asking, but "faux transparency" is certainly possible, and everyone used it about 20 years ago, at a time where many people used software rendering or rather underpowered graphics cards. On X this is easy. Just need to grab the appropriate part of the framebuffer using similar techniques to screenshot tools - eg look at scrot as an example. It is slow to re-render this way when you are moving it around though - but again, not fully sure what you're asking.


docs CI isn't pushing to docs repo when a PR is merged

I guess #199 didn't do the trick. Probably the if github.event.push is always false. Damn javascript's "unknown identifiers are valid code and evaluate as false". Worst language feature ever. Github actions docs don't even say mention their implementation runs on javascript either, so this stuff is very obscure and non-discoverable.

#205 did indeed fix this, as can be seen from https://github.com/popsim-consortium/demes-python/runs/1911491432


[Fix #10438] Add new Lint/RedundantInitialize cop to check for unnecessary initialize methods

Adds Lint/RedundantInitialize to look for initialize methods that are not useful.
The following are considered redundant:

Methods that only call super, passing the same argument list.
Methods that have no body, or only have a comment.

The following are not considered redundant:

Methods that only call super, but with a different argument list.
Methods that take a *, ** or ... in the argument list (as they can change the arguments required in a superclass)
Methods that set default values to arguments (as they can change behaviour from the superclass).

This cop does not check for properties of the containing class (such as inheritence or module inclusion) for simplicity. To avoid false positives, it assumes that any initialize class may be redefining a superclass's method.
Closes #10438.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Lint is a department that represents a very strong warning level. This would be the cop belonging to Style.

Yeah, I agree that's probably more of a Style cop.

Updated to Style namespace, added documentation note about empty initializers.

Thanks!


feat(discord-rpc): improve the system

Contains
This improvement aims to fix bugs in the system.
And, it improves communication between the game and Discord RPC to provide full access to its features.

Source: Discord Developer Documentation
Currently, the system supports state that can be changed dynamically using DiscordRPCSubSystem#setState.
And, details is also supported but its value is fixed as Name: PlayerName. It can't be changed.
This PR is going to implement other features such as partySize, partyMax, etc...
Discussion Points

Turning the default to be dynamic to have different details from different gameplay such as Currently in JoshariasSurvival, etc...

Since the engine has a networking infrastructure I'm thinking that we can implement the secrets (join and spectate)
in a way to provide the modules the ability to receive events like DiscordAskToJoinEvent and DiscordSpectateEvent.
Instead of each module dealing with it in a raw way.

Comment about what do you think of the points above? 🤔
Bugs

Game detection is broken
The game assumes the player is in the lobby while in reality, the player is in-game.
Not thread-safe
The Discord RPC connection is being handled in a separate thread to avoid conflicts with the game.
The system isn't thread-safe which might result in unexpected behavior.

How to test

Fetch the PR commits
git fetch origin pull/4271/head:<localBranchName>
Checkout to the PR's branch
git checkout <localBranchName>
Run the game and make sure you have Discord Rich Presence turned on.
Join a game to trigger your game state from In Lobby to In Game

NOTE:
In terms of unit testing, I'm not sure how I would implement it for this system. 😅
Outstanding before merging

[x] Fix: Game detection is broken (solved by #4274)
[x] Fix: Not thread-safe (47bae74)
[x] Feat: Ability to change details (48d1502)
[ ] Feat: Implement party size
[ ] Feat: Implement secrets
[ ] Test the RPC

[ ] Single Player

[ ] Multiplayer

@iHDeveloper what is the status on this?

@iHDeveloper what is the status on this?

@iHDeveloper what is the status on this and what is left to be implemented?

Working on it. I'm debugging the party size commit. And, I'm not sure if the secrets should be implemented in this PR. Or, maybe later.

@iHDeveloper what is the status on this and what is left to be implemented?

Working on it. I'm debugging the party size commit. And, I'm not sure if the secrets should be implemented in this PR. Or, maybe later.

I'm not sure if the secrets should be implemented in this PR

@iHDeveloper I would suggest keeping the PRs about as small as could be, for more frequent merges. Can always keep going in additional PRs :-)
Every checkbox in the bullets above could pretty much be its own PR, although if multiple finish around the same time anyway and overlap at all then grouping them may make sense.

I'm not sure if the secrets should be implemented in this PR

@iHDeveloper I would suggest keeping the PRs about as small as could be, for more frequent merges. Can always keep going in additional PRs :-)
Every checkbox in the bullets above could pretty much be its own PR, although if multiple finish around the same time anyway and overlap at all then grouping them may make sense.

This PR is ready to be reviewed and merged into the codebase. \o/ 😄
I discussed with @Cervator and decided not to implement the secrets feature in this PR.
And, I'm going to keep it to be implemented in the future when needed.
I tested this PR on both Singleplayer and Multiplayer (Hosting only) with the latest build from the develop branch.
I didn't have the ability to test this PR by joining a server. But, I'm going to assume that it works fine on the server.

This PR is ready to be reviewed and merged into the codebase. \o/ 😄
I discussed with @Cervator and decided not to implement the secrets feature in this PR.
And, I'm going to keep it to be implemented in the future when needed.
I tested this PR on both Singleplayer and Multiplayer (Hosting only) with the latest build from the develop branch.
I didn't have the ability to test this PR by joining a server. But, I'm going to assume that it works fine on the server.

Pull with rebase to resolve conflict with develop branch
Remove the change from .idea/checkstyle-idea.xml

:confused: Wanted to briefly test this on my Linux machine, ending up with an exception...
22:47:14.806 [main] INFO  o.t.e.s.d.DiscordRPCSubSystem - Initializing...
22:47:14.808 [DISCORD-RPC-THREAD] INFO  o.t.e.s.discordrpc.DiscordRPCThread - Waiting for auto-connecting...
22:47:14.810 [DISCORD-RPC-THREAD] INFO  o.t.e.s.discordrpc.DiscordRPCThread - Waiting for enabling...
22:47:14.810 [DISCORD-RPC-THREAD] INFO  o.t.e.s.discordrpc.DiscordRPCThread - Waiting for connection...
22:47:14.810 [DISCORD-RPC-THREAD] INFO  o.t.e.s.discordrpc.DiscordRPCThread - Connecting to Discord RPC...
Exception in thread "DISCORD-RPC-THREAD" java.lang.RuntimeException: org.newsclub.net.unix.AFUNIXSocketException: No such file or directory (socket: /run/user/1000/discord-ipc-0)
        at com.jagrosh.discordipc.entities.pipe.Pipe.createPipe(Pipe.java:167)
        at com.jagrosh.discordipc.entities.pipe.Pipe.openPipe(Pipe.java:67)
        at com.jagrosh.discordipc.IPCClient.connect(IPCClient.java:116)
        at org.terasology.engine.subsystem.discordrpc.DiscordRPCThread.run(DiscordRPCThread.java:170)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.newsclub.net.unix.AFUNIXSocketException: No such file or directory (socket: /run/user/1000/discord-ipc-0)
        at org.newsclub.net.unix.NativeUnixSocket.connect(Native Method)
        at org.newsclub.net.unix.AFUNIXSocketImpl.connect(AFUNIXSocketImpl.java:136)
        at org.newsclub.net.unix.AFUNIXSocket.connect(AFUNIXSocket.java:107)
        at org.newsclub.net.unix.AFUNIXSocket.connect(AFUNIXSocket.java:98)
        at com.jagrosh.discordipc.entities.pipe.UnixPipe.<init>(UnixPipe.java:46)
        at com.jagrosh.discordipc.entities.pipe.Pipe.createPipe(Pipe.java:163)
        ... 4 more

Discord integration works in principle, at least Spotify manages to display my activity nicely...


Bug: Downloading cli_helper.py returns 404:Not Found

I am unable to download the cli_helper.py using the command in the Readme.
Excepted behavior
cli_helper.py is downloaded
Current behavior
Downloading cli_helper.py using the command in the Readme returned 404: Not Found
Reproduction Steps
Ran the following command in cli -
curl -LJO https://raw.githubusercontent.com/aws-samples/aws-ddk-examples/feat/cli-helper/cli_helper.py
Returned file contained 404:Not Found

Hello, Thanks for opening this issue. I was able to reproduce this issue. I will open up a PR and resolve this but in the mean time you can update the command and get it working. curl -LJO https://raw.githubusercontent.com/aws-samples/aws-ddk-examples/main/cli_helper.py


[Runners in the Shadows] Updates and several fixes

Submission Checklist
Required

[X] The pull request title clearly contains the name of the sheet I am editing.
[X] The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).
[X] The pull request makes changes to files in only one sub-folder.
[X] The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)

New Sheet Details

The name of this game is: <   >  (i.e. Dungeons & Dragons 5th Edition, The Dresden Files RPG)

The publisher of this game is: <   > (i.e. Wizards of the Coast, Evil Hat)

The name of this game system/family is: <   > (i.e. Dungeons & Dragons, FATE)

[ ] I have followed the Character Sheets Standards when building this sheet.

[ ] I have authorization from the game's publisher to make this an official sheet on Roll20 with their name attached.
[ ] This game is not a traditionally published game, but a copy of the game rules can be purchased/downloaded/found at: <   >
[ ] This sheet is for an unofficial fan game, modification to an existing game, or a homebrew system.

Changes / Description

Added option to select playbook items as owned by bolding them.
Fixed methods/ways for supernatural playbooks
Fixed issue with implants by splitting into separate attr
Minor changes in language on rolls
Fixed error in vice calculation
Fixed error in number of XP boxes
Found several errors that did not properly get addressed in previous update
Added sheet workers to update from v1.1 to v1.3

Character Sheet Info Roll20 Internal Use only.


Clone VI, Class Ctrl/Ind might get renamed incorrectly

Does this issue relates to the fact, that class input/output terminals are renamed, but they don't have "in"/"out" in their names, please?

No I think this ws that if a class VI has class referece from other classes as controls/indicators (e.g. dependency injection), those class controls also gets renamed.

@kosist , it looks like I've fixed this issue in the latest build. Do you want a different behaviour for this function?

I had the following issue. Let's say, "Class A" was cloned as "Class B", and input terminals of cloned methods had names "Class B", instead of "Class B in"/"Class B out".
Right now I'm testing it with dummy classes in dummy project, but GOOP works just fine, input/output terminals are renamed properly.
If I try to clone the same class, with which I've had issue, then terminals are renamed not correctly.
Strange... I rename actor, which is inside the library. But again, if I do it with dummy project, everything works fine.
Now I've noticed, that I've got a bit out-dated GOOP toolkit (1.2.12); so I'll try to update it to 1.2.20, and try again.

With version 1.2.20 class was renamed correctly. Thanks a lot!


Training on Webvision 1.0

Hi, thanks for your sharing such a cool code!
I am trying to evaluate your approach on Webvision1.0, and there are 2 different kind of datasets are available(original version and resized version).
Which kind of version did you choose in your paper?
Thanks a lot!

Hi, I used the resized version. Thanks!

Thanks a lot, it's helpful for me!

Hello, there is another question.
For inception-resnet V2, the input size is 299299. However in dataloader_webvision.py, all input images are cropped into 227227. When i run Train_webvision_parallel.py, there is a mistake as below. How can i deal with it? Thanks a lot!
Traceback (most recent call last):
File "/home/zixiao/.conda/envs/torch12py37/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
self.run()
File "/home/zixiao/.conda/envs/torch12py37/lib/python3.7/multiprocessing/process.py", line 99, in run
self._target(*self._args, **self._kwargs)
File "/home/zixiao/work/DivideMix/Train_webvision_parallel.py", line 156, in test
outputs1 = net1(inputs)
File "/home/zixiao/.conda/envs/torch12py37/lib/python3.7/site-packages/torch/nn/modules/module.py", line 547, in call
result = self.forward(*input, **kwargs)
File "/home/zixiao/work/DivideMix/InceptionResNetV2.py", line 304, in forward
x = self.logits(x)
File "/home/zixiao/work/DivideMix/InceptionResNetV2.py", line 297, in logits
x = self.avgpool_1a(features)
File "/home/zixiao/.conda/envs/torch12py37/lib/python3.7/site-packages/torch/nn/modules/module.py", line 547, in call
result = self.forward(*input, **kwargs)
File "/home/zixiao/.conda/envs/torch12py37/lib/python3.7/site-packages/torch/nn/modules/pooling.py", line 551, in forward
self.padding, self.ceil_mode, self.count_include_pad, self.divisor_override)
RuntimeError: Given input size: (1536x5x5). Calculated output size: (1536x0x0). Output size is too small

I have updated the dataloader file, which should be able to run on the latest PyTorch. Thanks for pointing out the error.


how to generate a circular trajectory for franka emika, what's the hardness

Sir, can you please give some more information about what you are trying to achieve?

Will close this issue for now, feel free to reopen with more details


[IJ Plugin] Pass arguments to rover

If a supergraph.yaml file is present in the folder root, it's used by default, but a custom path can also be configured.

🛠 Docs Preview Building...

Configuration
{
  "repoOverrides": {
    "apollographql/apollo-kotlin@main": {
      "remote": {
        "owner": "apollographql",
        "repo": "apollo-kotlin",
        "branch": "ij-plugin-lsp-arguments"
      }
    }
  }
}

113305b39d5b807171709154011e9418ba95e3aa


GWT: Initial call to set viewport size fails for resizable application

d3cbe98eb72ec68bdd8c8630034b50166e8da4f8 introduced resizable applications with no configured with and height, therefore config.width and configh.height being 0.
The initial call to set the viewport size still based on this constants, causing this call to set an invalid size for resizable applications. This was not noticed because our tests and most games use an own viewport, but of all things, our starter template generated by gdx-setup fails to render correctly without this fix.

Thanks for the quick approvals guys ❤


Add information on arrow / datafusion sync call to the website

Add proposed bi-weekly call information to the website
See mailing list discussion for more context: https://lists.apache.org/thread.html/r5bafbb2b4cc871e82077dc725ae0ce70bae9d5cd8b990d193d65a2db%40<dev.arrow.apache.org>

Thank you for organizing the meeting Andrew.