Change PGDATA in 17+ to /var/lib/postgresql/MAJOR/docker

This is a pretty large breaking change, which is why this only makes the change in 17+ (which is currently in pre-release stages, and not due for GA until September, and pre-release PGDATA directories are officially not supported on the GA release anyhow).
Concretely, this changes PGDATA to /var/lib/postgresql/MAJOR/docker, which matches the pre-existing convention/standard of the pg_ctlcluster/postgresql-common set of commands, and frankly is what we should've done to begin with, in a classic case of Chesterton's Fence.
This also changes the VOLUME to /var/lib/postgresql, which should be more reasonable, and make the upgrade constraints more obvious.
For any users who have been testing the pre-releases, the simplest way to keep your existing data directory is going to be to add PGDATA=/var/lib/postgresql/data as an environment variable on your container or adjust your bind-mount from /var/lib/postgresql/data to /var/lib/postgresql/17/docker, but the best way is going to be to refactor your host directory such that your data lives at 17/docker inside and you can then mount directly to /var/lib/postgresql (possibly setting PGDATA=/var/lib/postgresql/MAJOR/docker as well, if you want to go overboard on being explicit).

(currently includes the commit of https://github.com/docker-library/postgres/pull/1258 for simplicity, but if that one is merged, I'll rebase)

I'm not sure how we help catch cases of users blindly upgrading to 17+ with a volume of /var/lib/postgresql/data and being surprised when it doesn't work correctly.  Maybe I'll do some testing with making /var/lib/postgresql/data a symlink to /var/lib/postgresql and see how Docker behaves with that (so that at least those users would still have data, even if it doesn't look exactly how they're expecting).

$ docker run -it --rm -v foo:/var/lib/postgresql/data --name foo --env POSTGRES_PASSWORD=foo 8b5ecf7fdad7
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/var/lib/docker/volumes/foo/_data" to rootfs at "/var/lib/postgresql/data": change mount propagation through procfd: open o_path procfd: open /var/lib/docker/overlay2/bd954e9c05618d52115b5345f7465cf17cc426560b0979d7f796ebfbf62ea950/merged/var/lib/postgresql/data: no such file or directory: unknown.

Ouch, nope, symlink is a bust.

I mean, on the plus side, it did make the container runtime fail to start the container, so maybe that's better than silently and quietly failing? :thinking:

Oh, I missed the most obvious way to mitigate this change for existing users: just set PGDATA=/var/lib/postgresql/data directly on your container. :smile:

this changes PGDATA to /var/lib/postgresql/MAJOR/docker, which matches the pre-existing convention/standard of the pg_ctlcluster/postgresql-common set of commands

It's an interesting idea.  Trying to figure out how that's beneficial for containers, but nothing super useful is popping up for me.
What's the concept you have in mind? :smile:

It's not directly useful so much as "more in line with the common standards used in this pre-existing ecosystem" -- us using a non-standard path has been a source of friction for our users since we first introduced the image.
This gets especially focused when you try to use pg_upgrade and realize you have to do some fancy footwork either in your host (matching a directory structure something like this, in fact) or in your bind mounts (and thus sacrificing speed since you can't use --link) to even make things work properly.

Interesting.  My first thought is that embedding the version number in the path like this would probably make adding some kind of automatic upgrade images much more difficult.
At least, the approach we're using with the pgautoupgrade repo is to upgrade things in place.
Might be able to work around such a change with a bit of extra shell scripting though.
I guess the 2nd worry I have is that this change is breaking the many years of following a particular approach (and thereby needing people to update their custom tooling to match), mostly for what seems like an arbitrary change without a clear benefit.  Those kind of changes tend to cause follow on headaches for people. :frowning:

The workaround is to set PGDATA explicitly -- if you set it back to the previous value, it will "just work" (in both the old and the new images).

Cool, yeah that should work for people with existing images and tooling.
With this:

when you try to use pg_upgrade and realize you have to do some fancy footwork ...

I'm trying to understand the pain/failure scenario there.  Are there good examples of this problem in this repo that I can read through to better understand?
With this new path structure, it seems to be matching the path layout which Debian has implemented for its PostgreSQL builds.  So I can sort of understand where you're coming from with respect to implementing it for the Debian based images.
Alpine doesn't seem to use that path structure for PostgreSQL though?

Alpine doesn't seem to use that path structure for its PostgreSQL packages though?

It does seem to use the same paths as noted by a user and when I install and run the postgresqlXX packages:
/ # apk add postgresql14
...
/ # rc-service postgresql start
/ # rc-service postgresql stop
/ # ls -l /var/lib/postgresql/*/data/PG_VERSION
-rw-------    1 postgres postgres         3 Aug 19 21:49 /var/lib/postgresql/14/data/PG_VERSION
/ # apk add postgresql15
...
/ # pg_versions set-default 15
/ # rc-service postgresql start
/ # ls -l /var/lib/postgresql/*/data/PG_VERSION
-rw-------    1 postgres postgres         3 Aug 19 21:49 /var/lib/postgresql/14/data/PG_VERSION
-rw-------    1 postgres postgres         3 Aug 19 21:50 /var/lib/postgresql/15/data/PG_VERSION

Are there good examples of this problem in this repo that I can read through to better understand?

I think it is partly that the --link option for pg_upgrade is hard to use with the current layout. In order to use it, your new and old database files must be "on the same mount". So, when using -v for a bind mount, they have to be specified in only one -v. So, for upgrade, you can't just use the same volume because the database data resides directly at the root of the volume. If using a Docker volume and not a bind mount, you are likely stuck using the slow version of upgrade.
Current optimal usage:
$ find DIR -mindepth 2 -maxdepth 2
DIR/OLD/data
DIR/NEW/data
$ # "OLD" server was run with a specific subdir next to where next version will store data
$ docker run -it --rm \
	-v DIR/OLD/data:/var/lib/postgresql/data \
	postgres:OLD
$ docker run --rm \
	-v DIR:/var/lib/postgresql \
	tianon/postgres-upgrade:OLD-to-NEW \
	--link
$ # NEW server with the new directory
$ docker run -d \
	-v DIR/NEW/data:/var/lib/postgresql/data \
	postgres:NEW

Slow upgrade with volumes (or unable to use the OLD directory parent or unable to move the OLD data directory):
$ docker run -it --rm \
	-v PGDATAOLD:/var/lib/postgresql/data \
	postgres:OLD
$ docker run --rm \
	-v PGDATAOLD:/var/lib/postgresql/OLD/data \
	-v PGDATANEW:/var/lib/postgresql/NEW/data \
	tianon/postgres-upgrade:OLD-to-NEW
$ docker run -d \
	-v PGDATANEW:/var/lib/postgresql/data \
	postgres:NEW

Using the newer layout from this proposal will mean that running or upgrading can use the same mount path (or a volume):
$ # "old" server
$ docker run -it --rm \
	-v DIR:/var/lib/postgresql \
	postgres:17
$ # upgrade
$ docker run --rm \
	-v DIR:/var/lib/postgresql \
	tianon/postgres-upgrade:17-to-18 \
	--link
$ # new server
$ docker run -d \
	-v DIR:/var/lib/postgresql \
	postgres:18

Drawback of this proposal is that if a user runs a new major PostgreSQL version without upgrading (like 17.x to 18.x), then they will just have a running empty database rather than the current error about Database file version mismatch. Their data will still exist, just not be accessible until they downgrade the image or do a pg_upgrade. So, we will definitely get a few users complaining that "all their data is gone".

So, we will definitely get a few users complaining that "all their data is gone".

Hmmm, that'd probably be fixable if the start up script checks for that situation and moves things around automatically.

So, we will definitely get a few users complaining that "all their data is gone".

Hmmm, that'd probably be fixable if the start up script checks for that situation and moves things around automatically.

Couldn't the startup script just error out if it finds an existing older version database, or automatically upgrade that database to the current version if some enviromental variable, for example AUTOMATIC_UPGRADE, is set?

or automatically upgrade that database to the current version if some enviromental variable, for example AUTOMATIC_UPGRADE, is set?

The automatic upgrade thing would definitely benefit a lot of people.  Not sure if the maintainers here are interested in including that (note the complete lack of response), though I could be wrong.

The automatic upgrade thing would definitely benefit a lot of people. Not sure if the maintainers here are interested in including that (note the complete lack of response), though I could be wrong.

Thanks for the link. Acording to tianon there:

The main problem as I understand it is that we need both the old version
and the new version of the postgres binaries simultaneously in the same
container (otherwise you can't pgdump the old data).

And also:

I'm a strong -1 on including the "second to last version" in every tag [...]

This seems to be the main roadblock.

This seems to be the main roadblock.

To me, that seems a bit silly.  I mean, that's why I was suggesting having PG images that don't do "automatic upgrade" as they'd just be the "normal" size.
But for people that do need an automatically upgrading image - unlikely to be everyone? - then sure it's going to be a bit bigger.  They don't seem all that huge though:
https://hub.docker.com/repository/docker/pgautoupgrade/pgautoupgrade/tags

They're about 190MB (roughly). So, ~40MB larger (~25%) due to including the binaries for several PG versions in them. Seems like a pretty decent trade off (to me). 😄

Yep, I agree that an automatic upgrade Postgres docker container would be amazing. I can see why you might not want it to be the default, but it would be very helpful to have as an option. We use the Postgres docker container in our local development environments, and every Postgres version upgrade is a pain that every developer needs to deal with (until I discovered pgautoupgrade today).


Support for uri-parameters in API endpoints

Use cases:

user has oneToMany coupons, and coupons are retrieved via /api/v1/user/{user_id}/coupons
API endpoint requires a parameter (no GET all), /api/v1/notes/{user_id}/

This can be achieved via query parameters right now, but may not be a fit for everyone and requires a certain type of structure for the API endpoints that may not be possible to change.

any update on this

@mingfang unfortunately, no.. I haven't had a need for it, is it something you'd benefit from? what is your exact use-case? Thanks!

Then we cannot use GitHub API with Amygdala?
Check out: https://api.github.com/

+1 to this issue
Certain API queries cannot be easily defined with these schemas. For example, I have the concept of a user group in my application. A group can create their own public facing page on our platform at the endpoint group-slug.myapp.com. So if I need to retrieve a particular group by their slug/subdomain, I would call an endpoint like /groups/subdomain/. From what I can tell I can't really define that query in Amygdala currently.


add OSC branding to secondary pages

besides the index page, pages are absent of any logos/branding

I was thinking of placing just our logo in the top right region of the screen

On second thought, I don't think this is a good idea


[get] and [post] with the same path, only one is generated

If I have two functions with different methods, only the second one appears in the swagger:
e.g.
// @Router /v1/somepath [get]
func (controller *SomeController) DoSomething() gin.HandlerFunc {

// @Router /v1/somepath [post]
func (controller *SomeController) DoSomethingElse() gin.HandlerFunc {

This might actually be swaggo/gin-swagger


Copilot - The bottom line of the pop-up modal is not visible

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.49-0
Reproducible in staging?: Y
Reproducible in production?: N/A - new feature, doesn't exist in prod
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause Internal Team
Action Performed:

Go to staging.new.expensify.com
Go to Security > Add copilot.
Add a copilot.
Click 3-dot menu next to the copilot.

Expected Result:
The bottom line of the pop-up modal should be visible.
Actual Result:
The bottom line of the pop-up modal is not visible.
This issue is not reproducible when the display is very zoomed out (wide screen).
Workaround:
Unknown
Platforms:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/13d79c9d-8f57-4cee-a25a-e2c21a2dd625

View all open jobs on GitHub
Issue OwnerCurrent Issue Owner: @grgia

cc @dangrous @rushatgabhane @allgandalf looks related to https://github.com/Expensify/App/pull/47984

Pre-req: be on copilot beta.

I think this can be demoted.

But please address before removing the beta?

@rushatgabhane can you put up a PR for this one? Would be great to get it sorted by the end of the week!

@rushatgabhane do you have time for this one or should we open it up? We just have to rejigger this section I think, probably including the windowHeight and adding a Math.min() in there in some way. I think there's also some left/right wonkiness that we should look at.
I realize you took this code from some other places in the app that use similar behavior but for whatever reason it doesn't seem to fit here (maybe doesn't there either, who knows).
https://github.com/Expensify/App/blob/a8e1b1365335eb9a592024e52eaa6684a12360b8/src/pages/settings/Security/SecuritySettingsPage.tsx#L74-L80

bump @rushatgabhane - is this something you should handle or should we open up for contributors?

Reassigning for someone to handle payment as I'm OOO for the next two weeks.

PR in review! we just have one improvement to make to the design (coloring the icon) and then we'll be good to merge

PR in revierw

Let's get this done this week!

Still waiting on PR

Offer sent here @allgandalf

Reviewer: @rushatgabhane owed $250 via NewDot

$250 approved for @rushatgabhane


Recipes Do's and Don'ts

This issue comes from #10, where rsync (as an alternative deployment method) exposes and overwrites certain tasks and even the deploy task.
We can either allow a recipe to override tasks, which is much easier for the end-user which is just plug and play.
On the other hand, for custom deploy scripts, overriding tasks can become an issue, where end-users want a specific task but it is overridden by a recipe.
Also, it could be argued that different deployment methods (such as rsync) could be on deployer itself (rather than recipes). But this will suffer from the same issue (overriding tasks and the deploy process)
Currently all recipes expose tasks and on the documentation say how/where they should be added to the deploy process.
This is a major discussion as it will steer the 3rd party recipes and usage of these in the deployer project.
Comments are welcome @deployphp/maintainer @elfet @johnny-bit

I think too, what 3rd-party recipes should has no effect on.
Imagine i has Symfony app based on recipe/symfony.php, but i want to use rsync. Now if i require this recipe - my deploy will be broken. Sad =(.

sooo I went ahead and changed rsync.php into type 1. now rsync is a useful task :smiley:
Now... to shared hosting workflow!

So to sum up some suggestions from #10 and #12:

use short file names.  Eg ftp instead of ftp_upload_to_server_recype_by_me
prefix tasks with recipe name. if You have task named mytest in myrecipe it should be named myrecipe:mytest
use global settings keyed by your recipe name. If You have one setting, name it the same as Your recipe. If You have multiple settings, use associative array
use environment variables prefixed by Your recipe name. If You have environment  varaible named better_path in recipe myrecipe, call it myrecipe_better_path

did I miss something?

that looks about right :)

Good :+1:


Add g flag to pattern string by default

Should we add g flag to pattern string?
For example, following pattern string is treaded /#.*{#[a-z.-]+}/ .
As a result, this pattern match only first item({#first}).
By constrast it does not match second item({#second})
pattern:
"/#.*{#[a-z.-]+}/"

text:
# First {#first}

# Second {#second}

Current behavior confuse user, I think.

If pass /pattern/, add g flag to the pattern automatically.
If pass /pattern/, do noting.


Feature/rspec content types

Complete specs for content type negotiation (for RDF content) on the /annotation/{id} route.  That route should be sufficient for testing content types, although triannon doesn't abstract serialization across different endpoints.  That is, there is some 'almost' duplicate code for /annotation/{id} and /search with regard to content negotiation (there may be a case for a triannon issue on this, but leaving that alone for now).  These client specs should provide enough information for interested client users to understand what is supported (and useful tracking details on how triannon behaves).

Coverage increased (+0.78%) to 97.03% when pulling 2c8bf3ea60c89b0c87e5f3d101b2244ee0be1def on feature/rspec_content_types into 813e7c7ac06de8b8b0fd1f3bc1c6ddf74e6a93a6 on develop.


how to disable the creation of the default Admin user?

My base image already has an administrator (the vagrant user) with a specific password and I do not want to change it or create a new administrator user.
To disable this behavior do I have to somehow blacklist the following plugins or is there other way?
cloudbaseinit.plugins.windows.createuser.CreateUserPlugin
cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin

Does cloudbase-init internally (or its plugins) use/need this user? Or is this just an user that will be used by an human?

For reference this is how I got the default plugins:
$cloudbaseInitHome = 'C:\Program Files\Cloudbase Solutions\Cloudbase-Init'
&"$cloudbaseInitHome\Python\python.exe" -c 'import json, sys; from cloudbaseinit import conf; json.dump(conf.CONF.plugins, sys.stdout)' | ConvertFrom-Json

And currently, this list is:
cloudbaseinit.plugins.common.mtu.MTUPlugin
cloudbaseinit.plugins.windows.ntpclient.NTPClientPlugin
cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin
cloudbaseinit.plugins.windows.createuser.CreateUserPlugin
cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin
cloudbaseinit.plugins.windows.licensing.WindowsLicensingPlugin
cloudbaseinit.plugins.common.sshpublickeys.SetUserSSHPublicKeysPlugin
cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin
cloudbaseinit.plugins.common.userdata.UserDataPlugin
cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin
cloudbaseinit.plugins.windows.winrmlistener.ConfigWinRMListenerPlugin
cloudbaseinit.plugins.windows.winrmcertificateauth.ConfigWinRMCertificateAuthPlugin
cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin

At least the ConfigWinRMCertificateAuthPlugin seems to need the password. Is this expected?
2019-10-20 16:54:11.765 2648 INFO cloudbaseinit.init [-] Executing plugin 'ConfigWinRMCertificateAuthPlugin'
2019-10-20 16:54:11.765 2648 ERROR cloudbaseinit.init [-] plugin 'ConfigWinRMCertificateAuthPlugin' failed with error 'Cannot execute plugin as the password has not been set in the plugins shared data, nor it was retrieved from the metadata service.': cloudbaseinit.exception.CloudbaseInitException: Cannot execute plugin as the password has not been set in the plugins shared data, nor it was retrieved from the metadata service.
2019-10-20 16:54:11.765 2648 ERROR cloudbaseinit.init [-] Cannot execute plugin as the password has not been set in the plugins shared data, nor it was retrieved from the metadata service.: cloudbaseinit.exception.CloudbaseInitException: Cannot execute plugin as the password has not been set in the plugins shared data, nor it was retrieved from the metadata service.
2019-10-20 16:54:11.765 2648 ERROR cloudbaseinit.init Traceback (most recent call last):
2019-10-20 16:54:11.765 2648 ERROR cloudbaseinit.init   File "c:\program files\cloudbase solutions\cloudbase-init\python\lib\site-packages\cloudbaseinit\init.py", line 66, in _exec_plugin
2019-10-20 16:54:11.765 2648 ERROR cloudbaseinit.init     shared_data)
2019-10-20 16:54:11.765 2648 ERROR cloudbaseinit.init   File "c:\program files\cloudbase solutions\cloudbase-init\python\lib\site-packages\cloudbaseinit\plugins\windows\winrmcertificateauth.py", line 58, in execute
2019-10-20 16:54:11.765 2648 ERROR cloudbaseinit.init     user_name, password = self._get_credentials(service, shared_data)
2019-10-20 16:54:11.765 2648 ERROR cloudbaseinit.init   File "c:\program files\cloudbase solutions\cloudbase-init\python\lib\site-packages\cloudbaseinit\plugins\windows\winrmcertificateauth.py", line 47, in _get_credentials
2019-10-20 16:54:11.765 2648 ERROR cloudbaseinit.init     "Cannot execute plugin as the password has not been set "
2019-10-20 16:54:11.765 2648 ERROR cloudbaseinit.init cloudbaseinit.exception.CloudbaseInitException: Cannot execute plugin as the password has not been set in the plugins shared data, nor it was retrieved from the metadata service.
2019-10-20 16:54:11.765 2648 ERROR cloudbaseinit.init

In the mean time, I've worked around this at https://github.com/rgl/cloudbase-init/tree/add-no-cloud by implementing the get_admin_username and get_admin_password methods that get the information from the nocloud service and now all plugins can be used without a blacklist.

you can easily redefine the metadata plugins list in the cloudbase-init config file, an example is already done in the unattend cloudbase-init config file. You can put there the exact set of plugins you require in your environment.
ConfigWinRMCertificateAuthPlugin is expected to have the username/password requirement, as the certificate mapping can be done only with the user credential.

OK, so we are really expected to edit that configuration file. Did that at https://github.com/rgl/windows-2016-vagrant/blob/master/provision-cloudbase-init.ps1. Thank you!


Support for logical data types

Fixes #788
So far Pandera only support physical data types, i.e. have a 1-1 relationship with pandas/numpy dtypes. Logical data types represent the abstracted understanding of that data.
The use-cases are:

Logical types that consist of a pandas dtype + a check on values: IP, URLs, paths. These can currently be validated with a Check but coercion is not possible.

Dtypes unofficially supported by pandas: date, decimal, etc..Another example is the new PydanticModel introduced in https://github.com/pandera-dev/pandera/pull/779

This PR is a proof-of-concept. I've  I added an attribute DataType.is_logical. When True, we expect DataType.check to return a mask of valid data, similar to the output of a check function. This is necessary to report failure cases, which was impossible in my initial proposal #788.
@cosmicBboy I tested this approach with the Decimal data type. I'd like to have your opinion before cleaning up the code and adding robust tests. I played with returning a Check or CheckResult class but did not find it very elegant.

Here is a copy/pastable example to play with:
import pandas as pd
import pandera as pa
from decimal import Decimal
from pandera.engines import pandas_engine

data = pd.DataFrame({"col": [Decimal("999.99") for _ in range(3)] + ["foobar"]})

schema = pa.DataFrameSchema({"col": pa.Column(pandas_engine.Decimal(5, 5))})
schema.validate(data)

This looks good overall @jeffzi !
We might consider a DataType subclass for LogicalDataType... I think it might provide a cleaner interface for the check method. Also, perhaps two separate methods for clarity might make sense: check_dtype for the current check interface, and check_value for checking an actual value.
# dtypes module

class DataType(ABC): ...

    def check_dtype(self, pandera_dtype): ...  # basically the same as current check method

class LogicalDataType(DataType): ...

    # logical data types defines an additional method
    def check_value(self, data_container): ...

@cosmicBboy Friendly ping :)

I would prefer DataFrameSchema to not know about the subtleties of data types.

Agreed!

Another option is to go back to my initial idea def check(self, pandera_dtype: DataType, data_container: Optional[Any]=None) -> Union[bool, Sequence[bool])

Let's go for this option for now. check(self, data_container) is cleaner in principle, but I'd prioritize no breaking changes over clean-ness, and I think it's fairly intuitive to have an optional arg for the data_container in the case that the physical datatype isn't enough to verify the logical datatype.
When we learn more and have a better sense of how physical/logical dtypes work we can think about a cleaner (but breaking-change) interface... it's funny to think this project is getting mature enough where 1.0.0 is something to think about in the medium term 😅.

Thanks for your input. I agree to not break things now. Probably a decision to make before pandera hits 1.0 😎

@cosmicBboy I'm having trouble with the modin-ray tests.
They pass on my local machine but fail for python < 3.10 in the CI. I did move the setup_modin_engine fixture to tests/modin/conftest.py in order to share it with the logical dtype tests. I don't see how this would cause the ci to fail. I'm probably missing something since I'm not very familiar with modin and ray
Could you have a look please?
Other than that, I did manage to make Decimal work with pyspark because pyarrow complains about Decimal in a series typed with object. I'd rather wait for the refactor of pandera's handling of data container libraries before going further with pyspark.
Let me know if the structure of testing works for you and I'll add placeholders for logical types tests in tests/pyspark. In the future, I think a similar structure could work to test regular data types too.

Thanks @jeffzi, lemme take a look

just looking at the error messages:
  File "/usr/share/miniconda/envs/pandera-dev/lib/python3.9/site-packages/pandas/core/apply.py", line 851, in apply_standard
    results, res_index = self.apply_series_generator()
  File "/usr/share/miniconda/envs/pandera-dev/lib/python3.9/site-packages/pandas/core/apply.py", line 867, in apply_series_generator
    results[i] = self.f(v)
  File "/usr/share/miniconda/envs/pandera-dev/lib/python3.9/site-packages/pandas/core/frame.py", line 8922, in infer
    return lib.map_infer(x.astype(object)._values, func, ignore_na=ignore_na)
  File "pandas/_libs/lib.pyx", line 2870, in pandas._libs.lib.map_infer
  File "/usr/share/miniconda/envs/pandera-dev/lib/python3.9/site-packages/modin/pandas/series.py", line 1248, in <lambda>
    lambda s: arg(s)
  File "/home/runner/work/pandera/pandera/pandera/engines/pandas_engine.py", line 503, in coerce_value
    return dec.quantize(self._exp, context=self._ctx)
decimal.InvalidOperation: [<class 'decimal.InvalidOperation'>]

Seems like that dec.quantize call is the proximal cause of the error.
But why would the Decimal dtype be used in the test?
    @pytest.mark.parametrize("coerce", [True, False])
    def test_dataframe_schema_case(coerce):
        """Test a simple schema case."""
        schema = pa.DataFrameSchema(
            {
                "int_column": pa.Column(int, pa.Check.ge(0)),
                "float_column": pa.Column(float, pa.Check.le(0)),
                "str_column": pa.Column(str, pa.Check.isin(list("abcde"))),
            },
            coerce=coerce,
        )
        mdf = mpd.DataFrame(
            {
                "int_column": range(10),
                "float_column": [float(-x) for x in range(10)],
                "str_column": list("aabbcceedd"),
            }
        )
>       assert isinstance(schema.validate(mdf), mpd.DataFrame)

I was able to reproduce the error in CI with modin==0.14.1

looks like modin isn't happy when you do operations on empty series, case in point:
pandera/schemas.py:1988: in validate
    reshaped_failure_cases = reshape_failure_cases(failure_cases)
pandera/error_formatters.py:135: in reshape_failure_cases
    if ignore_na

it's failing in error_formatters.py:
    return (
        reshaped_failure_cases.dropna()
        if ignore_na
        else reshaped_failure_cases
    )

hey @jeffzi is this PR ready for review? also, if you rebase onto dev some of those test failures will go away

Sorry for not following up earlier. Merging dev fixed the fastapi failures.
The PR is ready for review if you don't mind the missing documentation. I will add it this week-end and we can finally wrap up the PR.

@cosmicBboy Added documentation and CI passes except for slight codecov decrease.

Thanks @jeffzi! Lemme give it a final look

Amazing @jeffzi ! 🚀


support multiple custom hosts

Please provide a description of this PR:
We have a requirement in grayscale release. The control plane needs to support multiple custom hosts. And we can separate multiple values with commas. Of course it is still compatible with only one custom host.
To help us figure out who should review this PR, please put an X in all the areas that this PR affects.

[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[X] User Experience
[ ] Developer Infrastructure

Please check any characteristics that apply to this pull request.

[ ] Does not have any user-facing changes. This may include CLI changes, API changes, behavior changes, performance improvements, etc.

Hi @shirleyyLi. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

What is the use case?

@hzxuzhonghu
In grayscale release，we want to only change service's selector without restarting istiod pod.
For example，when we want to release a new version of istiod, if istiod pod supports multiple custom hosts which are Service Stable and Service Canary. At first, only Service Canary selects the new version. we can use Service Canary and releted envoys to test the new version of istiod pod. And then, the tests are successful, we can make the Service Stable select the new version. Then gradually scale up the new version pod and finally replace the old version.

@shirleyyLi: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
a1b6b867f98dd013c51a1bd02c20078d0b61914a
link
true
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Not clear to me, the recommended way is https://istio.io/latest/docs/setup/upgrade/canary/.

@hzxuzhonghu
Your recommended way needs to migrate all of the traffic to the new version, which means the configuration of envoys should be updated and they will be restarted. But we do not want to have impact on the existing sidecar proxies or istio gateways. So using service selector and multiple custom hosts to control direction of the traffic is a better way to us.

which means the configuration of envoys should be updated and they will be restarted.

Yes, but older envoy connects to new istiod could introduce unexpected error.  Though we always consider the version mismatch, be careful.

@shirleyyLi: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
39d439700c2e9c630d290fcdbebfca202ca0f992
link
true
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Win10 Pro 19043.1055 - not working

Need rdpwrap.ini for 19043.1055.
How can I help for a quick solution?

I need too!

guys, attach termsvr.dll

termsrv.zip

@mrkaktuz not working :(  Win10 Pro 19043.1055

@emrahsari44, it's an original file from 19043.1055. I upload it for @dreddArg

hey @contras2k could you help this guy please?

termsvr.dll 64 bit ?

termsvr.dll 64 bit ?

Yes, here archive with original termssrv.dll from Win10 Pro 19043.1055 64 bit.

@mrkaktuz definitly not - attached termsrv.dll is version 19041.1023 x64

@mrkaktuz definitly not - attached termsrv.dll is version 19041.1023 x64

I think the confusion is that Windows 10 1943.1055 used version 19041.1023 of the termsrv.dll (At least that's true in my Windows installation).

Highly likely. In such a case adding a section from #1420 should solve the problem.

Highly likely. In such a case adding a section from #1420 should solve the problem.

Yep, using the ini from :
https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini
And restarting rdp wrapper with the command:
RDPWInst.exe -r
worked for me.

Windows 10 1943.1055 uses version 19041.1023 of the termsrv.dll

Indeed, I have the same)

section from #1420 should solve the problem
Yep, using the ini from

Yes, it worked for me too.
Thanks everyone for the help!


Update developer-tools.md

Added some additional info and cleaned up some poorly worded English.

@daryllabar I have added your changes through our internal repo as the affected files were moved around to account for the latest changes. You will see your updates within a day.


Enable cross-compilation in Dockerfile

Issue #, if available: N/A
Description of changes:
Enable cross-compilation in Dockerfile. We need to add ARG TARGETOS TARGETARCH for them to be populated by buildx.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm


Feature/qj metadata cleanup

这个 PR 实现什么功能/修复什么问题:
改进：完善metadata的功能，标签支持分页，导出，排序，distinct操作
是否需要 backport 到之前的 release 分支:
None
/cc @ioito @zexi @wanyaoqi
/area util

/hold

Codecov Report

Merging #5402 into master will decrease coverage by <.01%.
The diff coverage is 1.67%.

@@            Coverage Diff             @@
##           master    #5402      +/-   ##
==========================================
- Coverage       7%       7%   -0.01%
==========================================
  Files         599      600       +1
  Lines      101195   101310     +115
==========================================
+ Hits         7093     7099       +6
- Misses      93531    93639     +108
- Partials      571      572       +1

Flag
Coverage Δ

#aFlag
7% <1.67%> (-0.01%)
:arrow_down:

Impacted Files
Coverage Δ

pkg/cloudcommon/db/orderby.go
0% <ø> (ø)
:arrow_up:

pkg/mcclient/options/base.go
44.52% <ø> (ø)
:arrow_up:

pkg/compute/models/guests.go
0.6% <ø> (ø)
:arrow_up:

pkg/compute/models/initdb.go
0% <0%> (ø)
:arrow_up:

pkg/cloudcommon/db/modelbase.go
3.32% <0%> (ø)
:arrow_up:

pkg/cloudcommon/db/standalone.go
1.71% <0%> (-0.22%)
:arrow_down:

pkg/cloudcommon/db/metadata.go
6.82% <0%> (-1.7%)
:arrow_down:

pkg/util/stringutils2/sortedstrings.go
51.48% <0%> (ø)
:arrow_up:

pkg/keystone/models/initdb.go
0% <0%> (ø)
:arrow_up:

pkg/compute/models/isolated_devices.go
2.27% <0%> (+0.01%)
:arrow_up:

... and 4 more

Continue to review full report at Codecov.

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

/lgtm

/lgtm


Error while loading extensions if start vscode from desktop entry

VSCode Version: 1.37.1
OS Version: Manjaro 18.0.4

VSCode cannot install extension. It returns an error like
error while loading extensions. connect ENOENT /run/user/1000/vscode-a6e6e4fe-1.37.1-shared.sock
In /run/user/1000, there's only vscode-bf9f08ec-1.37.1-shared.sock created when VSCode is started from desktop entry.
However, if vscode is started from the terminal via command code, there's no problem at all. A correct vscode-a6e6e4fe-1.37.1-shared.sock will be created in the directory and extensions can be installed.
Below is the desktop entry I use:
[Desktop Entry]
Exec=/opt/visual-studio-code/code %f
Icon=visual-studio-code
Terminal=false
Type=Application
Name=Visual Studio Code
Comment=Editar for building and debugging modern web and cloud applications
Categories=Development;WebDevelopment;IDE;Utility;TextEditor;
MimeType=text/plain;inode/directory;
StartupNotify=true
StartupWMClass=code

Does this issue occur when all extensions are disabled?: Yes

In VS Code, open the DevTools and run getLazyEnv().then(e => console.log(e)). Compare the environments from both execution options and see what is different.

Fixed by reinstalling it from Snap Store. It was installed from here which might configure things incorrectly.


ddl: Fix an issue where a query may throw an error during a remote read and the precision of a duration data type is changed (release-6.1)

This is an manual fix of #8671 in release-6.1
What problem does this PR solve?
Issue Number: close #8601
Problem Summary:
What is changed and how it works?
see https://github.com/pingcap/tiflash/issues/8601#issuecomment-1878393488. The different in release-7.1 and earlier branches is because the fsp change of time column type is ignored
Check List
Tests

[ ] Unit test
[x] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

Fix an issue where a query may throw an error during a remote read and the precision of a duration data type is changed.

/run-all-tests


fixes #178 - have a /etc/default/locale for cron

Signed-off-by: David J. M. Karlsen<EMAIL_ADDRESS>

Thanks for the pull request. I committed a slightly different fix (one that sets LC_CTYPE too) but I gave you credits in the changelog.


[BUG] [SM] Custom role creation failure on accounts with similar names

Bug reports which fail to provide the required information will be closed without action.
Required Basic Info

Accelerator Version:  1.5.1-a
Install Type: Resource Add
Upgrade from version: N/A
Which State did the Main State Machine Fail in: Deploy Phase 1

Describe the bug
A custom role is created through the ASEA config.json in account stage. The role is created successfully. The same role is added to an account with the name like stage-03 and when run the state machine fails stating that the role already exists within the account.
No errors were observed when adding this same role to an account with a different name (ie stage to dev) only when the account names were similar (ie stage to stage-03). Also no errors were observed when adding the same role with only a different name to the same stage-03 account.
Failure Info

What error messages have you identified, if any:
Error: There is already a Construct with name 'IAM-Role-RoleName-AccountDev---' in IamAssets [IAM Assets-AccountDev_--]

What symptoms have you identified, if any: likely due to the ASEA not using the full account name in the build phase

Required files

If a CodeBuild step failed-
buildlog-phase1-sanitized.txt

Steps To Reproduce

Create a custom IAM role through the ASEA config.json by running the state machine
Add that same role to account that has a similar name (ie stage and stage-03) in the config.json
Rerun the state machine which will fail on deploy phase 1

Expected behavior
The custom role to be created in the specified account
Additional context
Narrow context and likely will not effect many people depending on account and role names

After further investigation it seems to be related to the OU's and you are not allowed to have roles with the same name in the same OU even if accounts are different

In summary you are stating - 2 accounts, in the same ou, which have similar account-keys (which is typically identical to the account name), which have identical roles defined at the account level in the config file - then role creation fails?

i.e. the default config file has identical roles defined at the account level, for accounts in the same OU, but their account names are clearly unique, and the issue does not exist.

Please confirm?

Is the only difference between account-keys a dash, or is it a dash and a number, or when one contains the other: i.e. Dev-01 versus Dev01 or Dev to Dev01 or even Dev1 to Dev2?

Can you clarify the EXACT account names that you've confirmed to have the issue?
Thanks!

I am now unsure if that account names matter, based on further testing and issues.
But yes 2 accounts in the same OU, which then have identical roles defined at the account level in the config, only one account is allowed to create the defined role. The role permissions do not matter only the role name.
Example:
Account-1 in OU central
Account-2 in OU central
Account-3 in OU Dev
All three accounts get the same role definition, only accounts 1 and 3 will be allowed to create that role with the state machine failing on the phase 1 build step. If accounts 1 and 2 have the same role permissions defined but slightly different names for the role then there will be no error and the state machine will complete and create all the roles.
I had thought I had tested OU's before but turns out I hadn't and they seem to be the actual root cause of the issue.


Create JDBI instances per agroaldatasources

The JDBI instance could be configured using quarkus configuration, you could set things like:
jdbi.getConfig(SqlStatements.class).setUnusedBindingAllowed(true);
jdbi.getConfig(Arguments.class).register(new MyTypeArgumentFactory());
jdbi.getConfig(Handles.class).setForceEndTransactions(true);

Also @register annotations could be recoreded (and instantiated at build time):
jdbi.configure(RowMappers.class, rm -> {
    rm.register(new TypeARowMapperFactory();
    rm.register(new TypeBRowMapperFactory();
});

The instance creation could be disabled by a quarkus property like: quarkus.jdbi.createInstance=false an additional property could control whether the target of the @Register annotations (like rowmappers) should be added to reflection list (constructor only)

Codecs could be collected and registered to their given generic type:
public static class CounterCodec implements Codec<Counter> {

Would be registered by direct java type:
factory
  .addCodec(Counter.class, new CounterCodec())


Improve performance of delete operation

For what I see in this code, we're converting the dto to an entity just to delete the entity, maybe it would be a good idea to provide a deleteById method, or figure out another way of doing the deletion.
https://github.com/FlowingCode/backend-core/blob/6c23b719edaf5ecbbd3232a9a35d3a51aa5ff911/backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java#L85-L89

We would need a method to retrieve the persistent id (K) from the DTO S without first converting it to a persistent entity T.


properly cast NSDictionary mutableCopy and don't assign to void

Summary:
Changelog: [Internal]
kinda sloppy on my part, i lack basic programming skills lol
Differential Revision: D47677706

Abandoned internally


making uploading the workbench less confusing

Q
A

content fix?
yes

New article?
no

Related issues?
none

What's in this Pull Request?
Updated the section on how to upload the workbench to your dev site. There was some customer feedback that this was confusing. I think the close proximity of "upload" and "download" back-to-back was confusing, so hopefully this makes more sense now.
Also attempting to fix a rendering issue with bullets near the top of the doc with an extra line return.

thx David, good formatting


feat: new constants for rollup honk

In preparation for using UltraRollupFlavor to prove certain rollup circuits, we need to define new constants for proof and vk lengths.

Merged into https://github.com/AztecProtocol/aztec-packages/pull/10342.


openssl: fix man pages collisions

Motivation for this change
This avoids conflicts between man pages of openssl subcommands (for example 'ts' and 'err') man pages and their equivalent top-level command in other packages (respectively man-pages and moreutils).
This is done in ubuntu and archlinux, and possibly many other distros.
Things done

Built on platform(s)

[X] NixOS

[X] Fits CONTRIBUTING.md.

Notify maintainers
cc @peti

See https://github.com/NixOS/nixpkgs/commit/ca73b1fb3396d9f41bccdc2790e3e1f7f7720ee6 for the original fix and for discussion.
I know that he have priorities to handle these collisions. But priorities also mean that man pages are no more accessible.

What changes for end-users with this? Will it now be man ts-ssl instead of man ts?

It will be man 1ssl ts or man openssl-ts. If man ts worked before, it will still be available. So the only change is that the man pages can be accessed with man 1ssl ts in case of ambiguity.


Rename _wrapAsync to wrapAsync

Meteor is warning Meteor._wrapAsync has been renamed to Meteor.wrapAsync and I traced it to this package.

Please make pr to devel branch

@yogiben Pretty sure I already merged a PR for this, but it might not be released yet.

@aldeed Is there a timeline for<EMAIL_ADDRESS>Last release was Mar 21. Thanks!


Release

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@ec573e6). Click here to learn what that means.
The diff coverage is 91.42%.

@@            Coverage Diff            @@
##             master      #53   +/-   ##
=========================================
  Coverage          ?   89.41%
=========================================
  Files             ?       62
  Lines             ?      935
  Branches          ?      164
=========================================
  Hits              ?      836
  Misses            ?       92
  Partials          ?        7

Impacted Files
Coverage Δ

src/node-parser/class-parser.ts
85.91% <ø> (ø)

test/testUtilities.ts
100% <ø> (ø)

src/resources/File.ts
77.77% <0%> (ø)

src/resources/Namespace.ts
47.05% <0%> (ø)

src/resources/Module.ts
76.47% <100%> (ø)

src/TypescriptParser.ts
87.5% <100%> (ø)

src/node-parser/export-parser.ts
97.05% <100%> (ø)

src/code-generators/TypescriptGenerationOptions.ts
100% <100%> (ø)

...de-generators/typescript-generators/namedImport.ts
90.19% <90%> (ø)

Continue to review full report at Codecov.

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


[Draft] [Not working] Add subspec to AmplifyPlugins to pick up AWSPluginsCore automatically

Major changes
Add the "AWSPluginsCore" subspec to AmplifyPlugins podspec.
this puts the dependency (AWSPluginsCore) under the AmplifyPlugins pod so that they do not need to have a dependency on a pod that is external. As can be seen in the change, from
ss.dependency 'AWSPluginsCore', AMPLIFY_VERSION // external
to
ss.dependency 'AmplifyPlugins/AWSPluginsCore', AMPLIFY_VERSION // same pod

This is the developer facing pod and technically we could name this whatever we want like AmplifyPluginsCore. The developer could also install this pod (pod "AmplifyPlugins/AWSPluginsCore") if they really wanted to, perhaps for GraphQL document helpers of some sort, and it is not a plugin.
AWSPluginsCore.podspec, AmplifyTestCommon.podspec
We still have the AWSPluginsCore.podspec and AmplifyTestCommon.podspec. These do not need to be published and are used internally by the plugin's via Podfile to maintain separate workspaces per Plugin. We need these local pods to match the targets, ie. AWSPluginsCore's source files matches the AWSPluginsCore target. Same for AmplifyTestCommon and AmplifyTestCommon/AWSPluginsTestCommon.
Minor changes

Moved CoreMLPredictionsPlugin under AmplifyPlugins. This means docs and samples will change to  pod "AmplifyPlugins/CoreMLPredictionsPlugin"

Testing done
pod "Amplify", :path => "~/aws-amplify/amplify-ios"
pod "AmplifyPlugins/AWSAPIPlugin", :path => "~/aws-amplify/amplify-ios"

Not working due to missing import AWSPluginsCore within a file in AWSAPIPlugin..
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

need to investigate
/Users/distiller/amplify-ios/AmplifyPlugins/Core/AWSPluginsTestCommon/MockAWSAuthService.swift:10:8: error: no such module 'AWSPluginsCore'

Amplify workspace contains the AmplifyPluginsTestCommon target which is importing AWSPluginsCore from local (not pod)

closing this for now, and keeping the branch


Keycastr doesnt show in Security & Privacy -> Accessibility

I installed Keycastr using brew cask install keycastr, and I launched it. It doesnt show up in the list o apps under Security & Privacy -> Accessibility so i cant enable it. I am running Mac OSX 10.13.1.
I also did brew cask reinstall keycastr but same issue. No error is show on install.
Any ideas? Thanks.

I'm also having this problem. Also on 10.13.1

You will need to unlock the settings pane and drag KeyCastr into the list yourself. brew cask install is not able to do this for you, per the message it emits:
→ brew cask install keycastr
==> Creating Caskroom at /usr/local/Caskroom
==> We'll set permissions properly so we won't need sudo in the future
Password:
==> Satisfying dependencies
==> Downloading https://github.com/keycastr/keycastr/releases/download/v0.9.5/KeyCastr.app.zip
######################################################################## 100.0%
==> Verifying checksum for Cask keycastr
==> Installing Cask keycastr
==> Moving App 'KeyCastr.app' to '/Applications/KeyCastr.app'.
==> Enabling accessibility access
Warning: Accessibility access cannot be enabled automatically on this version of macOS.
See System Preferences to enable it manually.
🍺  keycastr was successfully installed!

When KeyCastr runs without the permissions it needs it also prompts you to enable it.

It's not clear that you can drag and drop items into the accessibility pane. I would recommend making that message more clear. To me, enabling it manually would mean that it would show up in the accessibility pane, but that i would have to check it off like Dropbox or other apps that use these features. If you don't update these warnings to be a little clearer, people will continue to ask you about this problem.

I agree, the message could be more specific. FYI, you can either drag & drop or click the + button and browse to the location of the app & select it.
Dropbox is using a hack which subverts Apple’s security model, and they have a lot of resources to play the game of cat & mouse with Apple from release to release of macOS as things change. Google ‘Dropbox Mac security hack’ for more info.
If you know of any open source apps which automatically add themselves to that menu we’d love to hear about them and look into how they’re doing it, but it’s not something we’re inclined to spend a lot of time exploring at the moment, vs. working on other features and fixes.

On Dec 4, 2017, at 8:10 PM, Brendan Schuetze<EMAIL_ADDRESS>wrote:
It's not clear that you can drag and drop items into the accessibility pane. I would recommend making that message more clear. To me, enabling it manually would mean that it would show up in the accessibility pane, but that i would have to check it off like Dropbox or other apps that use these features. If you don't update these warnings to be a little clearer, people will continue to ask you about this problem.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub https://github.com/keycastr/keycastr/issues/103#issuecomment-349189746, or mute the thread https://github.com/notifications/unsubscribe-auth/AAXHGChN-wGrXjlyN5RXnl6lWh27W90Yks5s9MJJgaJpZM4QpAMV.

Thanks for the clarification Andrew. Makes a lot of sense. I know these
kinds of things can be difficult to implement.
Brendan Schuetze '18
717.413.9163
On Tue, Dec 5, 2017 at 11:34 AM, Andrew Kitchen<EMAIL_ADDRESS>wrote:

I agree, the message could be more specific. FYI, you can either drag &
drop or click the + button and browse to the location of the app & select
it.
Dropbox is using a hack which subverts Apple’s security model, and they
have a lot of resources to play the game of cat & mouse with Apple from
release to release of macOS as things change. Google ‘Dropbox Mac security
hack’ for more info.
If you know of any open source apps which automatically add themselves to
that menu we’d love to hear about them and look into how they’re doing it,
but it’s not something we’re inclined to spend a lot of time exploring at
the moment, vs. working on other features and fixes.

On Dec 4, 2017, at 8:10 PM, Brendan Schuetze<EMAIL_ADDRESS>wrote:
It's not clear that you can drag and drop items into the accessibility
pane. I would recommend making that message more clear. To me, enabling it
manually would mean that it would show up in the accessibility pane, but
that i would have to check it off like Dropbox or other apps that use these
features. If you don't update these warnings to be a little clearer, people
will continue to ask you about this problem.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub <
https://github.com/keycastr/keycastr/issues/103#issuecomment-349189746>,
or mute the thread <https://github.com/notifications/unsubscribe-
auth/AAXHGChN-wGrXjlyN5RXnl6lWh27W90Yks5s9MJJgaJpZM4QpAMV>.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/keycastr/keycastr/issues/103#issuecomment-349360698,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALV9r52YOmW4jKJYEyWZhLaibSwHsVO7ks5s9XB4gaJpZM4QpAMV
.


Hyphens in table names cause AQL failures

Table names may have the following characters a-z, A-Z, 0-9, -, _ as per the arango documentation here. However, when the table has a "-" in the name, arango can sometimes treat it as a subtraction of 2 elements (see here for details).
That last documentation link suggests that tables names be enclosed in backticks to prevent the AQL interpreter considering the dashes to be arithmetic operators. We'll need to go through our codebase and replace the collection names with the original enclosed in backticks.
For reference, the table sparked this investigation is preCovid-19_flights_edges and the error that would be thrown when trying to run RETURN LENGTH(preCovid-19_flights_edges) was
Query: AQL: syntax error, unexpected identifier, expecting ) near '_flights_edges)' at position 1:26 (while parsing)

The code that generated this error is here in the db.py file and is likely where we need to fix this problem.

Should we prefer using bind vars here, instead?

Yes, we probably should. I'll address this in #435.


Radio Form. can't select

"react": "16.0.0-alpha.12",
"react-native": "0.46.4",
"react-native-simple-radio-button": "^2.6.0",

                      <RadioForm
                          radio_props={this.state.prices}
                          formHorizontal={false}
                          labelHorizontal={true}
                          initial={0}
                          buttonColor={'#d82647'}
                          animation={true}
                          onPress={(value) => {this.updateCart(value)}}
                          style={{alignItems: 'flex-start'}}
                        />

Hi, thank you for your issue.
This issue might be related #53. And I already bumped new version.
Could you try to use the latest version?
If you still have a problem, please let me know


docs: routing

wip -

Is it possible to make template fragments routable by specifying a route?

Is it possible to make template fragments routable by specifying a route?

Yes, add the @page or [HtmxRoute] to the component. However, then it's just a directly routable component and not a template fragment anymore.
A template fragment is a fragment of another page or component, it's not the full page or component that is directly routable. That's the idea behind "Locality of Behavior".
You have some content in a full page that you want to keep together with the other parts of the page, but it may also be a part that should be accessible during htmx targeted/swapping thing.
In the article https://htmx.org/essays/template-fragments/, they make the fragments addressable in a sense, because, I assume, they have an endpoint definition, where they inspect the incoming request, and then decide on a template and fragment to return, much like using Minimal Api endpoints in dotnet.
With the more declarative routing logic in Blazor and Htmxor, the decision of which parts or the whole of a component should render should naturally be more declarative, I think. Thus the whole idea of conditional components.


Support issue - user's network timed-out

Installing kind tool with arkade is failing with a client timeout:
blackdwarf~(:|✔) % arkade get kind
Downloading kind
Error: Head https://github.com/kubernetes-sigs/kind/releases/latest: \
net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

Expected Behaviour
arkade should successfully download kind.
Current Behaviour
arkade fails to download kind, giving a client timeout error as reason.
Possible Solution
Make step optional and force download regardless of HEAD response?
Add additional sources for downloading kind and failover?

Kubernetes not enabled in Docker Desktop <IP_ADDRESS> for macOS.
kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.8", GitCommit:"9f2892aab98fe339f3bd70e3c470144299398ace", GitTreeState:"clean", BuildDate:"2020-08-13T16:12:48Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"darwin/amd64"}
Error from server (InternalError): an error on the server ("") has prevented the request from succeeding

Operating System and version (e.g. Linux, Windows, MacOS):

uname -a
Darwin blackdwarf.local 19.6.0 Darwin Kernel Version 19.6.0: Thu Jun 18 20:49:00 PDT 2020; root:xnu-6153.141.1~1/RELEASE_X86_64 x86_64

What arkade version is this?

arkade version
Version: 0.6.10
Git Commit: 08ce44c5a23ff95576f7ccdc7e6ea956a6cbd85e

Hi @brokenthorn this appears to be working as designed. The Go HTTP client appears to be is telling you that you have a networking issue on your side?
I've run run the command myself also on Darwin and it worked first time.
kosmos:~ alex$ arkade get kind
Downloading kind
https://github.com/kubernetes-sigs/kind/releases/download/v0.8.1/kind-darwin-amd64
Tool written to: /Users/alex/.arkade/bin/kind

Run the following to add the (kind) binary to your PATH variable

export PATH=$PATH:$HOME/.arkade/bin/

/Users/alex/.arkade/bin/kind

kosmos:~ alex$

Unless there's an issue with arkade or something else you can tell me, perhaps we should close the issue?

There's also a version override, if that's of use to you? --version v0.8.1 for instance, but I'd encourage you to investigate whatever networking issue that you appear to be having first.

/set title: Support issue - user's network timed-out

@alexellis, thanks. I'll investigate and report back. I had no idea this was an issue on my network's side... I can also add that I've since tried installing other tools with ark as well and all fail with the same error. Weird!

This is weird indeed! Now it works!
blackdwarf~(:|✔) % arkade get k3sup
Downloading k3sup
https://github.com/alexellis/k3sup/releases/download/0.9.6/k3sup-darwin
Tool written to: /Users/sebastian/.arkade/bin/k3sup

Run the following to add the (k3sup) binary to your PATH variable

export PATH=$PATH:$HOME/.arkade/bin/

/Users/sebastian/.arkade/bin/k3sup

blackdwarf~(:|✔) % arkade get kind
Downloading kind
https://github.com/kubernetes-sigs/kind/releases/download/v0.8.1/kind-darwin-amd64
Tool written to: /Users/sebastian/.arkade/bin/kind

Run the following to add the (kind) binary to your PATH variable

export PATH=$PATH:$HOME/.arkade/bin/

/Users/sebastian/.arkade/bin/kind

The only thing I think I changed is that I deleted all K8s clusters... I installed k3d manually yesterday night and only got to install a cluster. After that I left. Today I deleted that cluster, restarted Docker for Mac and ran arkade get again and suddenly it works!

No worries. Do take a look at how you can combine several arkade commands for a powerful workflow like these: for openfaas or a docker registry with cert-manager -> https://docs.inlets.dev/#/get-started/quickstart-ingresscontroller-cert-manager


catch_ignore feature on dev

can we get a ignore feature on dev like on the master with catch_ignore.yml ?
[00:10:50] A Wild Meowth appeared! [CP 70] [Potential 0.53]
[00:10:50] IV [Stamina/Attack/Defense] = [13/11/0]
[00:10:57] Something rustles nearby!
[00:10:57] A Wild Meowth appeared! [CP 70] [Potential 0.53]
[00:10:57] IV [Stamina/Attack/Defense] = [13/11/0]
[00:11:05] Something rustles nearby!
[00:11:05] A Wild Meowth appeared! [CP 70] [Potential 0.53]
[00:11:05] IV [Stamina/Attack/Defense] = [13/11/0]
[00:11:12] Something rustles nearby!
[00:11:13] A Wild Meowth appeared! [CP 70] [Potential 0.53]
[00:11:13] IV [Stamina/Attack/Defense] = [13/11/0]
[00:11:34] Something rustles nearby!
I have the feeling that this (1!) meowth is blocking other pokemons from being discovered by the bot.

Can you post your config?

  "any": {"catch_above_cp": 0, "catch_above_iv": 0, "logic": "or"},
  "Meowth": {"never_catch": true}

tested also:
"Meowth": {"catch_above_cp": 999, "catch_above_iv": 0.99, "logic": "or"}
no difference at all, the bot is not catching like the config say, but there is a huge difference compared  to ignoring, with the old ignore_catch.yml on master the meowth not appeared for the bot

Im experiencing the same issue I loved the old yml it they wouldnt even show up, tried the same never catch statement they still show and are caught as well

@Philipp59 Apologies for skewing this off topic - I noticed your wiki entry of applescript to open restart the bot. I was wondering if you'd be able to publish an applescript to restart the bot after X amount of time so that you can leave the bot unattended throughout the day and this will iron out any crashes throughout the day ensuring the bot's uptime is close to 100%. I've been trying to develop this script myself, but no luck unfortunately and you seem by far more comfortable with AppleScript than I am - if you could implement such a script on the wiki, I myself would be grateful and I believe then entire OSX community would be too! Again, sorry for digressing off thread topic, just no other means of contact for you. Thanks!


Pin rocm-docs-core to a specific commit and update requirements

Pinning rocm-docs-core to a specific version makes the requirements entirely reproducible and keeps a record of the version the docs can be built with.
This also makes sure CI can check when some new features are being used, but the version was not updated.

Due to the rapid rate of development, we will not pin rocm-docs-core until the repository stabilizes. We will tag rocm-docs-core to allow for easier pinning.


ng test --environment works only once, but not on watch auto re-run

Bug Report or Feature Request (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request

Versions.

node --version
v6.10.1
npm --version
3.10.10
macOS (Sierra)
Repro steps.

npm run test (which runs ng test --environment=local)
This works fine (tests run successfully, using the specified environment).
change a .spec test file
This fails - it tries to re-run tests due to the change, but this time the environment is NOT used, instead the defaults environment.ts is used (which in our case leads to an error because it does not exist. Even if it did exist, it still is a bug as the proper environment is not being used).

The log given by the failure.

npm test

><EMAIL_ADDRESS>test /Users/lukemadera/Documents/code/presencelearning/pl-components-ng2
> ng test --environment=local

 10% building modules 1/1 modules 0 active08 08 2017 11:06:31.697:WARN [karma]: No captured browser, open http://localhost:9876/
08 08 2017 11:06:35.008:INFO [karma]: Karma v1.7.0 server started at http://<IP_ADDRESS>:9876/
08 08 2017 11:06:35.010:INFO [launcher]: Launching browser Chrome with unlimited concurrency
08 08 2017 11:06:35.015:INFO [launcher]: Starting browser Chrome
[../../../../../src recursive \.spec\.ts$] ./src \.spec\.ts$ 1.32 kB {main} [built]
[../../../../../src/lib/pipes/commify.pipe.spec.ts] ./src/lib/pipes/commify.pipe.spec.ts 1.2 kB {main} [optional] [built]
[../../../../../src/lib/pl-button/index.spec.ts] ./src/lib/pl-button/index.spec.ts 135 bytes {main} [optional] [built]
[../../../../../src/lib/utilities/object.spec.ts] ./src/lib/utilities/object.spec.ts 1.74 kB {main} [optional] [built]
[../../../../../src/polyfills.ts] ./src/polyfills.ts 2.53 kB {polyfills} [built]
[../../../../../src/test.ts] ./src/test.ts 1.02 kB {main} [built]
[../../../../zone.js/dist/async-test.js] ./node_modules/zone.js/dist/async-test.js 3.23 kB {vendor} [built]
[../../../../zone.js/dist/fake-async-test.js] ./node_modules/zone.js/dist/fake-async-test.js 16.3 kB {vendor} [built]
[../../../../zone.js/dist/jasmine-patch.js] ./node_modules/zone.js/dist/jasmine-patch.js 6.36 kB {vendor} [built]
[../../../../zone.js/dist/long-stack-trace-zone.js] ./node_modules/zone.js/dist/long-stack-trace-zone.js 6.22 kB {vendor} [built]
   [0] multi ./src/polyfills.ts 28 bytes {polyfills} [built]
[../../../../zone.js/dist/proxy.js] ./node_modules/zone.js/dist/proxy.js 5.6 kB {vendor} [built]
[../../../../zone.js/dist/sync-test.js] ./node_modules/zone.js/dist/sync-test.js 1.41 kB {vendor} [built]
<EMAIL_ADDRESS>./node_modules/<EMAIL_ADDRESS>39.7 kB {vendor} [built]
<EMAIL_ADDRESS>./node_modules/<EMAIL_ADDRESS>3.61 kB {vendor} [built]
    + 930 hidden modules

WARNING in ./node_modules/jasmine/lib/jasmine.js
93:4-17 Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/jasmine/lib/jasmine.js
99:4-17 Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/jasmine/lib/jasmine.js
106:17-48 Critical dependency: the request of a dependency is an expression
08 08 2017 11:06:50.457:WARN [karma]: No captured browser, open http://localhost:9876/
08 08 2017 11:06:50.709:INFO [Chrome 56.0.2924 (Mac OS X 10.12.3)]: Connected on socket GYNA0Z9MVmEi5n5VAAAA with id 44599402
Chrome 56.0.2924 (Mac OS X 10.12.3): Executed 27 of 27 SUCCESS (0.495 secs / 0.461 secs)
[../../../../../src recursive \.spec\.ts$] ./src \.spec\.ts$ 1.32 kB {main} [built]
[../../../../../src/lib/pipes/commify.pipe.spec.ts] ./src/lib/pipes/commify.pipe.spec.ts 1.2 kB {main} [optional]
[../../../../../src/lib/pl-button/index.spec.ts] ./src/lib/pl-button/index.spec.ts 135 bytes {main} [optional]
[../../../../../src/lib/utilities/object.spec.ts] ./src/lib/utilities/object.spec.ts 1.74 kB {main} [optional]
[../../../../../src/polyfills.ts] ./src/polyfills.ts 2.53 kB {polyfills}
[../../../../../src/test.ts] ./src/test.ts 1.02 kB {main}
[../../../../zone.js/dist/async-test.js] ./node_modules/zone.js/dist/async-test.js 3.23 kB {vendor}
[../../../../zone.js/dist/fake-async-test.js] ./node_modules/zone.js/dist/fake-async-test.js 16.3 kB {vendor}
[../../../../zone.js/dist/jasmine-patch.js] ./node_modules/zone.js/dist/jasmine-patch.js 6.36 kB {vendor}
[../../../../zone.js/dist/long-stack-trace-zone.js] ./node_modules/zone.js/dist/long-stack-trace-zone.js 6.22 kB {vendor}
   [0] multi ./src/polyfills.ts 28 bytes {polyfills}
[../../../../zone.js/dist/proxy.js] ./node_modules/zone.js/dist/proxy.js 5.6 kB {vendor}
[../../../../zone.js/dist/sync-test.js] ./node_modules/zone.js/dist/sync-test.js 1.41 kB {vendor}
<EMAIL_ADDRESS>./node_modules/<EMAIL_ADDRESS>39.7 kB {vendor}
<EMAIL_ADDRESS>./node_modules/<EMAIL_ADDRESS>3.61 kB {vendor}
    + 930 hidden modules

WARNING in ./node_modules/jasmine/lib/jasmine.js
93:4-17 Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/jasmine/lib/jasmine.js
99:4-17 Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/jasmine/lib/jasmine.js
106:17-48 Critical dependency: the request of a dependency is an expression

ERROR in ./src/environments/environment.ts
Module build failed: Error: ENOENT: no such file or directory, open '/Users/lukemadera/Documents/code/presencelearning/pl-components-ng2/src/environments/environment.ts'
    at Error (native)
 @ ./src/lib/pl-browser/pl-browser.service.ts 18:20-61
 @ ./src/lib/pl-browser/index.ts
 @ ./src/lib/pl-browser/index.spec.ts
 @ ./src \.spec\.ts$
 @ ./src/test.ts

Desired functionality.

The environment.local.ts specified by the --environment flag is used ALL the time, not just on the first run. Which thus leads to a successful test watcher that will auto re-run tests on changes without breaking, as it does now.
Mention any other details that might be useful.

+1
This also affects the 'serve' command:
ng serve --env=local works for the first time but on any file change 'watch' re-builds using the default environment.ts

I'm sorry, but I cannot reproduce this problem. Can you upload a simple reproduction that shows this happening? I've seen a couple reports of similar things but was never able to reproduce it, so a clear simple repro would be very important.

Thank you for looking after this.
I wanted to create an example for you and couldn't reproduce it myself.
I start with the command yarn start:some whereas in my package.json I have a task: "start:some": "ng serve --dev --env=some"
Everything worked as expected.
Until I changed the environment files.
E.g. environment.ts and environment.some.ts. I simply added some values to both.
When the watcher now builds the app again it uses the environment.ts file and not the environment.some.ts
But if I change some other TS-file the watcher builds the app with environment.some.ts as expected.
Knowing this I can live with it as I will randomly change the environment-File.
However it might help you to find a fix (if there is one)
Thank you!

Thanks @filipesilva for the follow up. I created a work around where I always create the default dev environment file and that's been working well enough for now. I don't have time to create a new project right now for reproducing (our projects are private repos) but if you and others still can't let me know I can try to find some time to do so.

@vonboth thank you so much!!! I can repro that!!! If I run ng serve --env=prod, I can see that:

editing src/environments/environment.prod.ts does not reflect the changes.
editing src/environments/environment.ts will stop using the prod env file and start using the dev one.

Now I know what's going wrong. Thank you!!!
@lukemadera we do require the original file to exist so that's probably why it breaks in your scenario.

I would just document this one...

This bug made my project to send unneeded error reports (e.g. Sentry)
export function provideErrorHandler() {
  if (environment.production) {
    return new RavenErrorHandler();
  } else {
    return new ErrorHandler();
  }
}

Error reporting must work only at production, but it keep sends report even on local dev env...
What a mess...
Weird thing is this bug sends error report with url webpack-internal:///

We changed file replacements in many PRs on the new 6.x workspace. I'm going to close this as fixed as we didn't have any new issues filed regarding environments and file replacements.
If this happens in the latest version, please file a new issue with an updated reproduction.


lzav and silesia

Hi! Could you please elaborate why in your table "Round-trip scores for LZ" LZAV shows 89232384 bytes compressed size? This is either a mistake or due to the way you compress. LZAV 4.5 compresses silesia tar down to 86495039, if compression is done in-memory as a complete block.

Hi,
I compress the file in 4MB blocks to do a fair comparison with other implementations (same thing with kanzi BTW). Now, when I test with 4.5, I get 88221200 for silesia.tar so I assume you have improved the compression ratio since I tested. I will update the README with this new result. I know you have a code excerpt showing how to use the compressor on your github, but a full working example would lower the effort for users and reduce the risk of misuse.

Thanks. I think you should include this details: that you compress the silesia in 4MB chunks and not the whole file at once.


Replace OTR with XMPP clients with OMEMO (#94)

Type

Addition / Removal

Changes

See #94
Please have a look at how I added a nested table. While it is valid for Markdown to add plain HTML, this may be a no-go in your book?

Supporting Material

See #94
Affiliation

None
Checklist

[x] I have read the Contributing guide, and confirmed my PR aligns with the requirements
[x] I have performed a self-review (valid markdown formatting, spelling and grammar)
[x] I have indicated whether I have any affiliation with any software/ services added
[x] I agree to follow the repositories Contributor Covenant Code of Conduct

I'm not sure, really. Currently, there doesn't seem to be a protocol that has its own section, so that would put XMPP on a pedestal. So I propose to merge this first, especially because (judging from everything I've read about OTR) we would be doing people a disservice by recommending its use, and perhaps then talk more about how you would envision a separate section for XMPP?

That's fair.
I think I need to do a big refactor at some point to make the list clearer, and re-test everything listed, so I'll revisit this then. But for now I'll merge this

Cool! Let me know what you think afterwards, we'll figure it out then 😃

Shouldn't the liss-bot have run already? I'd like to be sure that the table is correctly shown in the PDF output and on the website... 😅


Feature: Improve prod error message

We receive a lot of lexical errors in production, some of those errors have %s like https://lexical.dev/docs/error?code=67.
It would be nice to have https://lexical.dev/docs/error?code=67&v=MentionNode.

As I understand from this comment formatProdErrorMessage can receive 3 args
https://github.com/facebook/lexical/blob/c3a392e2ba977e1e1581b787eb83bde26c6da1dd/scripts/error-codes/transform-error-messages.js#L31-L37
but in formating only the code is used.
https://github.com/facebook/lexical/blob/c3a392e2ba977e1e1581b787eb83bde26c6da1dd/scripts/error-codes/formatProdErrorMessage.js#L15
I tried reproducing prod error message locally in lexical playground, but no success, so I am not sure if the comment above is right.
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    replaceCodePlugin({
      replacements: [
        {
          from: /__DEV__/g,
-          to: 'true',
+          to: 'false',
        },
      ],
    }),

Does the idea make sense, can we do this?

It's annoyingly hard to test it on local, so just tested with PR branch and preview deployment


Template download in background

Godot version:
3.06
OS/device including version:
macOS 10.14.2
Issue description:
When downloading an export template through the editor, clicking anywhere else will not only close the window but terminate the download
Steps to reproduce:
fresh Godot installation.
fresh project
export, for example, for Mac
→ editor downloads 300+ MB but when clicking anywhere outside of the download window, it'll get interrupted.
→ download should run in background so user can continue working while downloading template.

In 3.1 at least it doesn't close when you click outside.

This was implemented by https://github.com/godotengine/godot/pull/48902, closing.


Problem on specific wikipedia page: https://en.wikipedia.org/wiki/Donald_Trump

Also had this error:

Specific page:
https://en.wikipedia.org/wiki/Donald_Trump

Waited a while, doesn't seem like it was just bc it was too long


Include examples for andthen and orelse

https://docs.perl6.org/language/operators
=head1 Loose AND precedence
=head2 infix C«and»
Same as L<#infix &&>, except with looser precedence.
Returns the first operand that evaluates to C<False> in boolean context, or
otherwise the last operand, it short-circuits. Please note that C<and> is easy
to misuse, see L<traps|/language/traps#Loose_boolean_operators>.
=head2 infix C«andthen»
Returns L«C<Empty>|/type/Slip#index-entry-Empty-Empty» upon encountering
the first undefined argument, otherwise the last argument.
Short-circuits. The result of the left side is bound to $_ for the
right side, or passed as arguments if the right side is a
L«C<Callable>|/type/Callable».
=head1 Loose OR Precedence
=head2 infix C«or»
Same as C<infix ||>, except with looser precedence.
Returns the first argument that evaluates to C<True> in boolean context,
or otherwise the last argument, it short-circuits. Please note that C<or> is easy
to misuse, see L<traps|/language/traps#Loose_boolean_operators>.
=head2 infix C«orelse»
Similar to C<infix //>. Returns the first defined argument, or else the
last argument. Short-circuits. The result of the left side is bound to $_ for the
right side, or passed as arguments if the right side is a
L«C<Callable>|/type/Callable».

This whole section would benefit from examples.

https://github.com/perl6/doc/commit/55319f716fb147809f7d8954a5558ebf8cc9455e


Single responsibility principle

What does this PR do?
This PR implements SRP (Single Responsibility Principle for the Inverted Index class
Description of Task to be completed?
Implement Single responsibility principle for the Inverted index class
How should this be manually tested?
It can be seen in the inverted index class with the create, get and search Index methods
Any background context you want to provide?
Not Applicable
What are the relevant pivotal tracker stories?
Not Applicable
Screenshots (if appropriate)
Not Applicable
Questions:
No Questions

Coverage remained the same at 100.0% when pulling 29f3c20036f7db51e35a8635558bc216fd8a0979 on single-responsibility-principle into 2c0542e2eac0a22e743b2c17b8eaae7742ad1775 on develop.

Coverage remained the same at 100.0% when pulling 6aef611eb3d32d188fbc2ee4fb78efc916b3d3b8 on single-responsibility-principle into 2c0542e2eac0a22e743b2c17b8eaae7742ad1775 on develop.


Server recieving 3 SYN packets when connection is rejected (Windows but no Linux)

I'm securing a web application and I'm implementing the port knocking technique. The server side implementation is running and i'm making a small desktop application to make the "knocking" on the ports.
I decided to do this with javascript and the fetch API currently available on most browsers and the node-fetch utility.
To make a test, I opened a browser and wrote the following function:
(async function() {
    for ( port of [7000, 8000, 9000] ) {
       await fetch("https://xx.xx.xx.xx:" + port)
           .catch(() => console.log("packet sent on port ", port))
           // I only catch because the server rejects the connection.
           // With the TCP SYN sent it's enough.
    }
})();

Running this on Chrome over Ubuntu 18.10 works exactly as expected, but when I copied this function to a Windows 7 computer, the fetch behavior is somehow random:
When looking on the server logs I realize that there are multiple connections for every port (not a constant) and sometimes the order changed.
The normal behavior running this on my Linux computer:
openWeb: Stage 1
openWeb: Stage 2
openWeb: Stage 3

When running on a Windows-based machine:
openWeb: Stage 1
openWeb: Stage 1
openWeb: Stage 1
openWeb: Stage 2
openWeb: Stage 1
openWeb: Stage 1
openWeb: Stage 1
closeWeb: Stage 1
closeWeb: Stage 2
closeWeb: Stage 1
closeWeb: Stage 1

The order of the connections is important and thus this is not working on the knock listener daemon.
Used Chrome Dev Tools to analize network activity and there is nothing strange in how connections are displayed there.

because the underlying behavior is controlled by nodejs' native http/agent library, you might have better luck asking them.


Fixed 404 error with no trailing backslash

With an NGINX reverse-proxy on a sub-directory:
Instead of having to visit https://mydomain.com/map/, you can now also visit https://mydomain.com/map (no trailing backslash) without receiving a BlueMap 404 error.

Alright :)
Let's see if this works for people, thanks !


Characteristiic throwing error org.bluez.Error.InProgress

I have tested the readValue to a readable characteristic and it worked fine:
  const characteristic1 = await service1.getCharacteristic(TEST_CHARACTERISTIC_WRITE)
  const buffer = await characteristic1.readValue()
  console.log('read', buffer, buffer.toString())

But, when I try to execute writeValue in an writable characteristic with the following code, it is throwing the exception:
  const characteristic2 = await service1.getCharacteristic(TEST_CHARACTERISTIC_WRITE)

  await characteristic2.writeValue(Buffer.from('s'))

The error:
{ DBusError: In Progress
    at _methodReturnHandlers.(anonymous function) (/home/ica/git/ica/fecon_beta/node-ble/node_modules/dbus-next/lib/bus.js:337:27)
    at handleMessage (/home/ica/git/ica/fecon_beta/node-ble/node_modules/dbus-next/lib/bus.js:96:11)
    at EventEmitter.MessageBus.conn.on (/home/ica/git/ica/fecon_beta/node-ble/node_modules/dbus-next/lib/bus.js:146:9)
    at EventEmitter.emit (events.js:182:13)
    at /home/ica/git/ica/fecon_beta/node-ble/node_modules/dbus-next/lib/connection.js:116:14
    at Socket.<anonymous> (/home/ica/git/ica/fecon_beta/node-ble/node_modules/dbus-next/lib/message.js:63:9)
    at Socket.emit (events.js:182:13)
    at emitReadable_ (_stream_readable.js:540:12)
    at process._tickCallback (internal/process/next_tick.js:174:19)
  name: 'DBusError',
  type: 'org.bluez.Error.InProgress',
  text: 'In Progress',
  reply:
   Message {
     type: 3,
     _sent: false,
     _serial: 2677,
     path: undefined,
     interface: undefined,
     member: undefined,
     errorName: 'org.bluez.Error.InProgress',
     replySerial: 37,
     destination: ':1.165',
     sender: ':1.12',
     signature: 's',
     body: [ 'In Progress' ],
     flags: 1 } }

Could someone help me to solve this? Any sugestion or idea?

Hi there! I've got the same problem - did you find a solution?


[bug] Although Slice model can not exists without datasource (sqltable) it possible to create model without datasource type

Slice related and depend on it's datasource, it can't live without It.
When we take attention to the code inside the Slice model, you can notice
 sqla.event.listen(Slice, "before_insert", set_related_perm)

def set_related_perm(_mapper: Mapper, _connection: Connection, target: Slice) -> None:
    src_class = target.cls_model
    id_ = target.datasource_id
    if id_:
        ds = db.session.query(src_class).filter_by(id=int(id_)).first()
        if ds:
            target.perm = ds.perm
            target.schema_perm = ds.schema_perm

@property
def cls_model(self) -> Type["BaseDatasource"]:
    return ConnectorRegistry.sources[self.datasource_type]

datasource_type is mandatory so it can't be null, it should be enforced
Expected results
when Inserting new slice without datasource type, exception should be raised
(please complete the following information):

superset version: 0.999.0dev
python version: 3.8.6
node.js version: node -v

Closing this as stale since it's been silent for so long, and we're trying to steer toward a more actionable Issues backlog. If people are still encountering this in current versions (currently 3.x) please open a new Issue or a PR to address the problem.


Relative paths in subprocesses should not be classified as modules

The source or pkg check here https://github.com/nedbat/coveragepy/blob/master/coverage/inorout.py#L218 is easy to break for a subprocess. If the parent process has a relative source tree passed in as coverage target (e.g. ./tests) and there's a child process that changes the current working directory the child will incorrectly classify the tree as a module.
E.g. this
<ModuleMatcher source_pkgs ['pyproject_api']> <TreeMatcher source ['/home/bernat/git/pyproject-api/tests']>

translates to:
<ModuleMatcher source_pkgs ['.tox/py310/lib/python3.10/site-packages/pyproject_api', 'tests']>

Perhaps we need a COVERAGE_PROCESS_CWD to set the root folder...

I understand you were frustrated when you wrote this.  I'm sorry for that.  I would like to address the problem you describe here, but I could really use some more information.

Not frustrated, more relieved to figure out the issue and find a workaround to move on to other challenges. And actually I no longer have the code because the version I was failing with was a Dev version that never got published on its own. The project is pyproject-api from tox-dev org. You probably can replicate it if you replace my absolute --cov paths with relative ones; though I believe my initial posts points out the issue with link to the coveragepy code.

No longer relevant for me.


Is it supported on mac m1?

Describe the bug:
I got a tip icon of docker desktop on mac m1: amd64, is there any possible to support mac m1 natively?

We have not tested it on the M1 Mac or any other ARM machine so far. Here is a Medium article that explains how to cross-compile images but unfortunately I didn't find time yet to play around with it. Since M1 Macs / ARM machines will grow in numbers in the future, we definitely have to spend some time to offer future images for both architectures in case they don't work out of the box.

The easier solution will be to build the image first on your M1. In the future I would like to have an ARM build included in docker hub.
Hint: this is not a bug issue as this is docker behavior. Docker images built on certain architecture do not generally on others.

Awesome, thanks @MohamedElashri already for the first examination. One aspect to also consider besides the tools are the libraries. I am uncertain whether libs such as tensorflow or pytorch work out-of-the-box on ARM. For example, there is this tensorflow-for-arm repo or this unofficial pytorch-arm-builds repo. This might hint to the fact that the "normal" versions don't work on ARM; though I might be wrong about that.

Awesome, thanks @MohamedElashri already for the first examination. One aspect to also consider besides the tools are the libraries. I am uncertain whether libs such as tensorflow or pytorch work out-of-the-box on ARM. For example, there is this tensorflow-for-arm repo or this unofficial pytorch-arm-builds repo. This might hint to the fact that the "normal" versions don't work on ARM; though I might be wrong about that.

That's a valid concern for this project scope but not a very deep problem. I think publishing this container doesn't need to initially have all pre-installed libraries which could be solved via manual installation via Jupyterhub/Jupyter Notebook in general which would keep things easier for maintaining as every day support for ARM libraries comes with workarounds and support from different projects.
I think for adding ARM support we can go the minimal way. Making sure that tools are working (maybe replace unsupported or try later to have ARM build for them) and the more fundamental libraries having support like numpy and matplotlib already on arm64. But in general I agree with you that "normal" version does not work on ARM, so things are not a problem of cross build or just build on arm machine and everything will work out of the box.
I would like to work on that but honestly don't know the scope of what we could achieve and if you would mind having different (potentially fewer features) ARM version.

I have a problem with fix-permission.sh script which should read USER_GID from the Dockerfile already, but it is not, and I get stuck at Please set a user GID via USER_GID env varibale. with return error 1 I don't know what should be the problem here

Do you get that error with the unmodified Dockerfile or have you already modified it? As you said, the USER_GID is set in the Dockerfile on the very top and I have so far never experience that issue.

I get past this point although I did not know what was the problem but it is now solved. Still trying to tackle compatibility issues.


Show point that Location Panel is referring to

Here we observe the Location Panel.
Ah, but where is the location it is referring to?
Is it the coordinates of

A, where the mouse pointer currently is?
B, where the mouse pointer departed the map, a few minutes ago?
C, the selected item? (as it would be in the Measurement Panel)

Answer: B, the only invisible point of the three!
Therefore there should be a checkbox "[ ] Show marker", (like the Share function) , so users can see where in fact it is actually referring to.

(Misreported in https://github.com/openstreetmap/openstreetmap-website/issues/5287 )

This relationship is implicit; the location panel is in the "background layers" menu (coordinates of positions inside the active view of the background layer), the measurement panel is in the "data layers" menu (coordinates of selected objects).
A text could be added similar to the measurement panel so it explicitly says 'mouse cursor' at the top.
Additionally, a mouse icon could be added next to it (though this is inconsistent with the measurement panel)
This is instead of the highlight/marker, which is then likely redundant.
Consider the following
This is an optional, toggleable panel which is barely used, it is not a critical feature. It should be self-explanatory, clear with minimal explanation, or alternatively be delegated to internal/external documentation to avoid cluttering the editor itself.
Many highlights are already taken. Adding more highlights or re-using existing ones is likely confusing for the user.
(also, I assume most users who actively need this feature are familiar with GIS applications which have similar UI layout.)
Highlights/markers should preferably

be distinguishable (selected object is red, Linked object (relation, warning) is blue, changed objects (g key) are green(created), yellow(tags), orange(moved).
not require adding icons cluttering existing UI.
be non-intrusive (not obscuring the objects, map view or cursor), eventhough it can be toggled.
not interfere with the cursor highlight displayed by built-in accessibility tools. (which usually is a red circular like the way you tried to highlight where the marker should be placed); of course the suggested marker itself could be something else.

checkbox "[ ] Show marker"

I think this is a bit overkill for this particular problem. Instead, we could gray out the coordinates should the mouse be outside of the map viewport.

The bigger question here is: what is the location panel even good for? Perhaps it could also show the coordinates of the currently selected object, if one is selected?!

I think this could be done :-
To resolve this confusion, I suggest adding a checkbox option "[ ] Show marker", similar to the Share function. This checkbox would allow users to toggle the visibility of a marker indicating the exact point on the map that the Location Panel is referencing. Here’s how it could work:
Checkbox "[ ] Show marker":
This checkbox, when selected, would display a marker on the map at the location corresponding to the coordinates shown in the Location Panel.
This marker helps users visually understand and verify the reference point of the coordinates.
And Some suggestions :-
Explicit Text and Icon:
Text Addition: Add a label like 'mouse cursor' at the top of the location panel to make it clear what the coordinates are referencing.
Mouse Icon: Consider adding a mouse icon next to the text for further clarity. However, this might be inconsistent with the design of the measurement panel.
Redundancy:
The highlight/marker feature might become redundant if clear text and icons are added.
Simplify UI by minimizing unnecessary elements.
I think I can solve the issue . Will you please assign it to me?


The subscription of 'xxx' does not exist or has more than one match in cloud 'AzureCloud'.

I have two subscription with name "Microsoft Azure Sponsorship" in my account,
I get this error: The subscription of 'xxx' does not exist or has more than one match in cloud 'AzureCloud'.
when trying to set subscription using subscription id:
az account set --subscription "xxx"
while xxx is the subscription id.

Does it appear in az account list?

yes

@guybartal, to confirm, using subscription id with az account set -s  still  doesn't work out?

please reactivate with more information

This is also happening to us with our SPs on our tests!
@yugangw-msft

Workaround: run az account clear once to fix the issue


Add Blend Normal Maps node

To improve the normal map workflow I implemented a Blend Normal Maps node. It does exactly what its same says.
As there is no canonical algorithm to blend two maps I added a small collection to give the user some choice. The algorithms are taken from blog.selfshadow.com/publications/blending-in-detail and adapted to ArmorPaint's needs. I deliberately skipped the 'stupid' algorithms like linear blending or overlay as these flatten the normal maps and do treat the channels separately. Therefore I only implemented 'proper' ones to guide the user to better results. But if you wish to add those feel free to contact me.
Clearly the node has some similarity to MixRGB but does not support a Fac socket. The reason is that Blend Normal Maps does not compute some "weighted" average but tries to preserve the strength of both normal maps. It is kind of an union operation. If the user wishes to add some weights it is way better to construct something like this

Imho the results are super cool and very easy to understand this way.

Awesome!

Thank you for merging. May I contribute further nodes? Do you have some wishes, plans or is there something missing?


Supporting pytroch 2.0

torch._six.class_strings is deleted, therefore, replaced to (str, bytes) in our code

mypy 0.910 is incompatible. Therefore changed to 0.920
xxxxxxxxxx\.venv\lib\site-packages\.\torch\distributed\optim\apply_optimizer_in_backward.py: error: INTERNAL ERROR -- Please try using mypy master on Github:
https://mypy.readthedocs.io/en/stable/common_issues.html#using-a-development-mypy-build
If this issue continues with mypy master, please report a bug at https://github.com/python/mypy/issues
version: 0.910
xxxxxxxxxxx\.venv\lib\site-packages\.\torch\distributed\optim\apply_optimizer_in_backward.py: : note: please use --show-traceback to print a traceback when reporting a bug


Minor quality of life changes (capital Energenie, missing semi-colon, package version outputs)

Hello! Again, thanks for the great work on this. I'd like to be able to help make it more awesome, if you'd be interested in that!
This first pull request contains some very minor suggestions that have helped me so far when setting up my development environment:

The Energenie name in the HA discovery packets was lower case, which made it feel lesser alongside the other devices in my HA instance that have capitalised brand names 😅
There was a missing semi-colon; tiny
This one might be more controversial: Could I suggest we bring through the package version into the app runtime, so that it can be a) used at logging start but also b) in the discovery packages; the firmware property that the sw discovery property ends up in, is perfectly suited for displaying version numbers

Hope you like this and are interested in further collaboration. I've submitted #41 too that might be even further controversial, so I'll split it into its own for a separate discussion
(apologies for closing the first version of this PR, I accidentally submitted from my develop branch rather than a feature-specific branch and I am new to this so wasn't sure how to repoint it without recreating the PR)

According to this hard to find bit on this page about discovery messages, sw already represents sw_version... I'm not sure why this isn't on the page you linked!


Support Upload and Download Scripts

In vivarium-scripts, we want to be able to upload and download experiment data for archival. This adds support for these operations.

@eagmon could you take a look? I responded to your comment