NIFI-6072: Add sub project to package nifi-minifi-jni required NARs a…

…nd JARS for basic usage
Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[ ] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[ ] Has your PR been rebased against the latest commit within the target branch (typically master)?

[ ] Is your initial contribution a single, squashed commit?

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

@jdye64 and @apiri  -- feel free to take a look
For other reviewers, here is the corresponding funcitonality
https://github.com/apache/nifi-minifi-cpp/pull/489

@phrocker is the main rationale to avoid needing this build and the associated tooling in cpp land?  I see this is currently in a profile and I think that is okay for the common case, but do you think this would be a standard inclusion in our release process for NiFi such that the generated artifacts are readily available?

@phrocker is the main rationale to avoid needing this build and the associated tooling in cpp land? I see this is currently in a profile and I think that is okay for the common case, but do you think this would be a standard inclusion in our release process for NiFi such that the generated artifacts are readily available?

@apiri The primary rationale is actually that we will eventually be able to create regression tests in this or a related package to avoid making releases that could potentially break this linkage. Secondarily, the hope is that this feature appears more official by being a release artifact of Apache NiFi proper ( this feeds back into the first point ).
The target could certainly live in C++, referencing the remote parent, without any issue whatsoever, but these two primary points were what I wanted to discuss.
I would anticipate this breaking often without ownership in NiFi, and I know some profiles exist for various entities, so precedent seemed to exist in that aspect. Certainly open to discussion where we put this. My preference due to the risk to MiNiFi C++, and perceived less risk to NiFi is that if we don't put this here we don't put this in MINiFi C++ and instead provide it as documentation only.

I think I’m good with it if there are no strong objections.  Certainly makes sense to avoid some of the headaches that can happen with maintenance and disjoint release cycles.  Incorporation with an optional profile sounds good and is something we should incorporate in CI

After much deliberation I have decided to put this into the MiNiFi C++ project

functionality was merged in apache/nifi-minifi-cpp#498


Tag for preprint

I have introduced a first tag for the version of the code used for the preprint published. I should mention this in the readme. We can have more tags for the paper and different versions of it. We can keep main moving a make sure it won't stop working.

@kasperjo @phschiele @stephenpboyd

Good idea, makes it easy to see which state was used in the paper.


Fix metadata of new layer after applying transform

The new layer was still being displayed with the moving layer's affine.
Corrected this to the reference layer's affine to fix the display problem.
I had some confusions getting my original apply_transform branch up to date. In the end I created a new branch for this ...

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

Comparison is base (1a60b60) 90.66% compared to head (ccc8941) 90.66%.
Report is 1 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #87   +/-   ##
=======================================
  Coverage   90.66%   90.66%
=======================================
  Files           7        7
  Lines         257      257
=======================================
  Hits          233      233
  Misses         24       24

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


Is there a way in InstaRaider to download all photos associated with a given tag

I need a lot of data associated with a specific task, basically the photos, likes and comments of each photo. Is there a quick way to do this in InstaRaider, or should I try something else. Thanks for taking the time to read this.

@AntreasAntoniou The short answer is no. The code could easily be modified to pass a tag as a parameter instead of a username. InstaRaider would then load https://www.instagram.com/explore/tags/YOURTAG instead of the profile page, but I assume some modifications would have to be made in regards to the selectors for loading the page and getting the image URLs, as well as refactoring some of the code involved with parsing the user profile page for how many images the user has, etc. It wouldn't be hard to do, but it's not supported right now.

This is something I'm after too.

I found a way to do it. However instagram was limiting me to the number of images per page, even if I scrolled down I wouldn't get new pictures. BUT I used an API call to get tags similar to my own and then recursively get more and more similar tags. Each tag gives you 33 images, 24 random + 9 top ranking. So I did something like a few 5 steps of recursion and got 3000 tags = 33 x 3000 = 99000 images. Good enough for my deep learning model.

Cool. I'm glad you found a solution that worked for you. If you got the feature to a point that it works fairly well feel free to create a pull request. I'm sure others would find it useful as well. I'll close this issue for now.


Nerfs Gatfruit & reduces its spawn probability

About the PR
-Yield is about 33 times lower (combination of loss of repeatable harvest, yield from 2->1, maturation from 6->50)
-Spawn probability reduced 70%
Closes https://github.com/space-wizards/space-station-14/issues/6591

Also you can still get seeds, yes, but you can probably get only 2-3 total harvests over in an average round length.

definitely reasonable now with the maturation time

ahhh wtf is wrong with my git, just noticed vitamins are in here too

Reduced the maturation time just a bit because I'm not sure you'd be reliably able to get 1 harvest off in average round length since this is an item that usually comes mid-round and it'd be pretty lame if the round ended most of the time you were trying to grow one.

After an adminbus round brought to us by moony I think the main issue was the repeatable harvest, that change along cuts the number of guns by a huge amount.
I reduced the maturity age to 25, since it'll still take a few generations to get huge production going most rounds just won't be long enough and there will be probably only a couple revolvers average each round a seed packet is discovered.


AutoRotate = false, wont work on certain Android Phones e.g. Asus ZenPhone C

There's an issue related to autoRotate being set to false, it seems in certain android Phones they still scan on wrong orientation. This is repeatable in Asus ZenPhone C

i found out the real issue, actually autorotate check true/false will fail whenever tryharder is set to true. As if it is try hard to "scan the code when it's landscape" supposedly we locked auto rotate based on portrait.

TryHarder basically tries to rotate the captured image and look for a barcode at each rotation (effectively rotating it 4 times and checking 4 times for a barcode per preview frame captured).  Use this only if you absolutely must as it will really affect performance.


Missing page_viewed Partial

Is this compatible with Spree v4.5.0? Got an error about missing partial when view the legacy frontend:
spree/shared/trackers/google_analytics/page_viewed.js

I cannot see a this file inside this repo. What happened after Spree v3.4?

I'm facing the same issue for spree v4.5.0.

You have to specify what error you got.
From my understanding the page_viewed.js is rendered from /app/views/spree/shared/trackers/google_analytics/_page_viewed.js.erb

Here is the error message.
Missing partial spree/shared/trackers/google_analytics/_page_viewed.js with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder, :rabl]}.

Yes I can confirm this issue on Spree 4.5.0.
Bug fix is greatly welcomed

I use this fix
https://github.com/JuanseGimenez/spree_analytics_trackers/commit/c947cd88db69066bf7946e6ce2183e0ed663895e

It should be fixed on master


EOL'ed Node.js functions

Service Workbench is currently using the nodejs12.x runtime for most of its Lambda functions (all except Cognito-PreSignUp), which is being EOL'ed by AWS.
AWS has started sending the following to accounts that have Service Workbench installed in them:

We are contacting you as we have identified that your AWS Account currently has one or more Lambda functions using Node.js 12 runtime.
We are ending support for Node.js 12 in AWS Lambda. This follows Node.js 12 End-Of-Life (EOL) reached on April 30, 2022.
As described in the Lambda runtime support policy, end of support for language runtimes in Lambda happens in two stages. Starting November 14, 2022, Lambda will no longer apply security patches and other updates to the Node.js 12 runtime used by Lambda functions, and functions using Node.js 12 will no longer be eligible for technical support. In addition, you will no longer be able to create new Lambda functions using the Node.js 12 runtime. Starting December 14, 2022, you will no longer be able to update existing functions using the Node.js 12 runtime.
We recommend that you upgrade your existing Node.js 12 functions to Node.js 16 before November 14, 2022.
End of support does not impact function execution. Your functions will continue to run. However, they will be running on an unsupported runtime which is no longer maintained or patched by the AWS Lambda team.

Are there plans to upgrade Service Workbench Lambda functions to nodejs16.x before November?

Hi,
Thanks for bringing this to our attention. We have added this to our backlog and will prioritize making the update. We'll let you know soon what our ECD for this is.
-Tim

Thanks for your issue on this!
:tada: Service Workbench on AWS (V1) v5.2.3 has been released! This release includes the upgrade to using NodeJS runtime 16x in all Lambda functions and using Serverless v3 during deployment of components :tada:


fix migration

Coverage remained the same at 90.773% when pulling 0719266c759b80d3037f4fafd16375374af4c802 on fix_id_form into 33531add2d67b64f46a8f4e1b91e4cf80f7136db on develop.


Page CTA - More Customisations

Allows to customise character, and variant of the CTA sections of every page:

(Changed showcase page cta color and character)

@jasontheillustrator any thoughts on these?

I am unable to fix the error atm, if this is required right now, someone can push the fix - the fix is to either set Character={some character} in  in components.js, or set default value for the prop in Page Panel itself.
(I can probably do it myself within a few hours)

I can handle it, give me a few minutes

Amazing, thank you @fturmel and @dipamsen!

@jasontheillustrator any thoughts on these?

these look good to me.


Validator is not used when passed to create_model and having the same name as a field

Initial Checks

[X] I confirm that I'm using Pydantic V2

Description
Hi!
I noticed that the validator is not used and called if it has the same name as the field (or some other limitations, I'm not sure)
I guess a warning or a error would be really useful. Or at least something specified in docs about this
Example Code
from pydantic import create_model, field_validator

def bar(cls, v):
    print("bar_called", v)
    return v

validator = field_validator("bar", mode="before")(bar)

# OPTION1: validator is not called
validators = {"bar": validator}

# OPTION2: validator is called
# validators = {"bar_validator": validator}

Foo = create_model("Foo", bar=(str, ...), __validators__=validators)
foo = Foo(bar="bar")

Python, Pydantic & OS Version
pydantic version: 2.9.2
        pydantic-core version: 2.23.4
          pydantic-core build: profile=release pgo=false
                 install path: D:\project\.venv\Lib\site-packages\pydantic
               python version: 3.12.3 (tags/v3.12.3:f6650f9, Apr  9 2024, 14:05:25) [MSC v.1938 64 bit (AMD64)]
                     platform: Windows-10-10.0.19045-SP0
             related packages: fastapi-0.112.1 mypy-1.11.1 pydantic-settings-2.4.0 typing_extensions-4.12.2
                       commit: unknown

Yeah, looks like a bug, given that this works:
from pydantic import BaseModel, field_validator

class Model(BaseModel):
    a: int

    @field_validator('a')
    def a(cls, v) -> int:
        return v + 1

m = Model(a=1)
print(repr(m))
#> Model(a=2)

Hi @sydney-runkle, I'd like to pick this one. Can you assign it to me?

The validators are updated first, followed by the fields in the namespace. As a result, if a validator and a field share the same name, the field takes precedence, preventing the validator from being stored.
Here's the code:
https://github.com/pydantic/pydantic/blob/6681c0090c255508ab55e36e7c76a9a11db5b9f5/pydantic/main.py#L1652-L1657
@sydney-runkle Do you suggest storing the fields and validators separately to avoid such conflict?
The BaseModel behaviour in such case is buggy, It throws a ValidationError for following:
from pydantic import BaseModel, field_validator, Field
from typing_extensions import Annotated

class Model(BaseModel):
    a: Annotated[int, Field(validate_default=True)] = 1

    @field_validator("a")
    def a(cls, v) -> int:
        return v + 1

m = Model()
print(repr(m))

Nice catch!
I was thinking that another possible solution would be to add a prefix to all __validators__, like a -> _validator_func_a.
    if __validators__:
        for validator_name, validator in __validators__.items():
            namespace[f"_validator_func_{validator_name}"] = validator

I don't think adding a prefix would be a good idea. It's up to the user to make sure there's no clashing names between members of a class. I'm fine with adding an error for create_model as it can easily be an oversight (no type checking error, etc). For the class definition example, we could also align with the create_model behavior and raise an error, although type checkers already raise an error, and implementing it might be trickier (I suspect it needs to be implemented in the _ModelNamespaceDict class).

For the class definition example, we could also align with the create_model behavior and raise an error, although type checkers already raise an error, and implementing it might be trickier (I suspect it needs to be implemented in the _ModelNamespaceDict class).

Fair enough, but this may cause the existing code to not work.

It's up to the user to make sure there's no clashing names between members of a class

I agree, and in this case it's hard for the user to realize that __validators__'s keys will be  members of a class. Perhaps this is the disadvantage(easily be an oversight) of create_model.
In view of this, I'm fine with adding exception for create_model and maybe we should leave the class mode issue aside for now. Thank you!

Hey folks, we've addressed this concern with a docs update, see https://github.com/pydantic/pydantic/pull/10703#issuecomment-2465282891 for more details :).


[MM-13789] Set initial posts count of a channel to consider combined system messages

Summary
Set initial posts count of a channel to consider combined system messages
Ticket Link
Jira ticket: MM-13789
Device Information
This PR was tested on: [iOS and Android simulator/emulator]

Closing this PR.  Permanent fix will be addressed by the new selector for combined system posts - https://mattermost.atlassian.net/browse/MM-11877


ReplayableTCPSource

We should create a TCPSource that allows for arbitrary acknowledgement messages to be sent when messages are handled. ReplayableTCPSource along with a Kafka source and the existing TCPSource should give us a good basis for:

solid source API
testing exactly-once delivery

@SeanTAllen Can we close this?  ConnectorSource currently plays this role.


Suggestions to improve docs

Some suggestions to improve the tweakpane docs website:

Move /docs to /. There is nothing in tweakpane.github.io/ so it 404s.
Add a favicon
Update year in the footer from 2018 to 2024
Get a vanity domain such as tweakpane.io or tweakpane.dev (both are available)

Thank you for your suggestion.

Move /docs to /.

The current URL structure is based on the repository name. For instance, github.com/orgname/reponame results in orgname.github.io/reponame. Since Tweakpane organization manages several repositories, tweakpane.github.io/docs is appropriate for tweakpane/docs.

Update year in the footer from 2018 to 2024

It shows the original year of publication. (Ref: Standard Application Help: Publication/Completion)

Get a vanity domain such as tweakpane.io or tweakpane.dev (both are available)

Acquiring a domain involves ongoing costs, and there is no guarantee of a consistent sponsorship to cover these expenses. This project is currently maintained on a volunteer basis.


Export ol.Observable#dispatchEvent function

fixes #3994

It works as expected in development and production mode. the api doc looks good.

Todo: write a better function description

Thanks for this export. Make things easier on OL3 plugins for example.

Forget about this one ...
@elemoine good to merge ?

Yep!

Thanks again for the review


Garbled text shows up after saving plug-in instances on 3.5.3 and 3.6

Summary
Often but not always on the top of the page many lines with some plug-in information show up after saving a plug-in instance after editing content.
Expected behaviour
No garbled text.
Actual behaviour
Garbled text confuses the editing person. Nevertheless the plug-in is saved and it doesn’t affect the readers. After reloading the page, the garbled text vanishes.
Downgrading to 3.5.2 makes this issue disappear.

Environment

Python version: 3.5.3
Django version: 1.11.18
django CMS version: 3.5.3

Unfortunately this error occurs also on django CMS version 3.6. Am I the only one seeing this?

Hi @MacLake, did you ever resolve this?
I've never had this happen or see it reported before.

HI @marksweb , no, we never resolved this, and this issue is still getting on our nerves, in the meantime with djangoCMS 3.8.0 and Django 3.1.10. Well, you can live with it, since it doesn’t affect the readers, only the editors, but it’s not nice, and also for the acceptance within our company it would be better that my colleagues don’t get the impression of a buggy CMS.

@MacLake Thanks for the feedback. I'll try to gather the thoughts of other maintainers to see if we can get to the bottom of this one.

@MacLake Can you reliably reproduce the error? If so, can you please be kind enough to do a screen-recording and share it with us? It will greatly help us reproduce and possibly also fix it.

@marksweb Thanks for taking care of this! One more thing: Our setup is a multi-site and multilingual instance. We have used the same database for all these sites. Recently we have added another site. Since we have external editors for this EU project, I use a new separate database for this new site in order to have a better separation, but still the same virtualenv. In this new site I haven’t seen this garbled text.

@MacLake thanks for the additional info.
As a side note, I'm also running a multisite setup in multiple languages using 1 database as well 👍
This system is currently on python 3.7 or 3.8, Django 2.2 and cms 3.7 I believe.
Initially what this looks like to me is an issue related to javascript, so browser details would also be helpful.

So here is my screen recording. It took some time to capture it, as this bug only occurs every now and then, not every time, but often enough to bother the editing users. So I can’t reliably reproduce it in the sense that you see it every time after doing certain actions.
https://user-images.githubusercontent.com/9460962/118189692-63caac00-b442-11eb-9025-546b49241d9f.mp4
I agree, it seems to be JavaScript related, and as mentioned, it didn’t occur until 3.5.2. I use mainly Firefox on Linux. I’m going to check out if I can reproduce it also on Chromium and Chrome. My colleagues have also encountered this bug. I’m going to ask what they used on their Windows systems.


add max_ls_iter and max_dirichlet_iter as options in model.train

When increasing the number of topics to be discovered I get an Exception:
Exception: Stopping in admm.newton_regularized_dirichlet.

As you suggested It could be fixed by increasing the number of line search iterations (ls_iter in the admm.newton_regularized_dirichlet)  and the number of Dirichlet iterations (max_diricihlet_iter in the admm.admm).
Could you add these options to the model.train, please?

Fixed by #23


use ruff instead of flake8

The flake8 plugins we use are re-implemented in ruff, which is why they have been removed from the dependencies.
isort is enabled (and used when formatting) through the I001 rule.
The "exclude list" has been updated to omit folders that ruff excludes by default.
Everything else is the same, the only difference being two new rules being ignored (which weren't checked before anyway):

C901: Function is too complex, which I excluded as we were not checking it before either (an eventual refactor should have its own PR);
RET504: Unnecessary variable assignment before return statement, which we do everywhere as it increases readability.

@simskij you might need to review the branch protection rules on this repo, as it looks like it's stuck even though all checks passed :)


Create roundhayschool

Added my school.

roundhayschool.co.uk is for students, roundhayschool.com for teachers (for some reason).


Support JSONC in json module

Description of the feature request:
It would be great to support JSONC format in json module.
json.decode(str, allow_comments = True)

or
jsonc.decode(str)

What underlying problem are you trying to solve with this feature?
With the adoption of bzlmod, and https://github.com/bazelbuild/bazel/issues/14632. Maintaining all the extension configs in MODULE.bazel becomes harder and harder.
Therefore, as a rule author, I'd love to provide a way for users to offload such configs in a separate file. And most importantly I want this file to be somewhat ergonomic to work with. For now, the only natively supported data format is JSON. However, JSON is not a great format for human maintained data, where comments and trailing commas are appreciated. On the other hand, JSONC solves those issues perfectly while not introducing lots of complexity to the parser.
Which operating system are you running Bazel on?
macOS
What is the output of bazel info release?
6.2.0
If bazel info release returns development version or (@non-git), tell us how you built Bazel.
No response
What's the output of git remote get-url origin; git rev-parse master; git rev-parse HEAD ?
No response
Have you found anything relevant by searching the web?
No response
Any other information, logs, or outputs that you want to share?
No response

This is a repo for starlark spec, not specific starlark implementation (even if this repo sits in bazel org).


AS3 3.27 return error when patch /Common/Shared

Environment

Application Services Version: 3.27
BIG-IP Version: 15.1

Summary
When adding a pool using the PATCH method in /Common/Shared, AS3 return an error when node are the same but stil create the pool.
Steps To Reproduce
Steps to reproduce the behavior:

Define /Common/Shared with some pools using the same node

{
	"class": "ADC",
	"schemaVersion": "3.27.0",
	"updateMode": "selective",
	"Common": {
		"class": "Tenant",
		"Shared": {
			"class": "Application",
			"template": "shared",
			"pool-1": {
				"class": "Pool",
				"members": [
					{
						"servicePort": 80,
						"serverAddresses": [
							"<IP_ADDRESS>"
						]
					}
				]
			},
			"pool-2": {
				"class": "Pool",
				"members": [
					{
						"servicePort": 80,
						"serverAddresses": [
							"<IP_ADDRESS>"
						]
					}
				]
			}
		}
	}
}

Pools are created without errors

{
  "results": [
    {
      "code": 200,
      "message": "success",
      "lineCount": 21,
      "host": "localhost",
      "tenant": "Common",
      "runTime": 3472
    },
    {
      "code": 200,
      "message": "no change",
      "host": "localhost",
      "tenant": "Common",
      "runTime": 1739
    }
  ],
  "declaration": {
    "class": "ADC",
    "schemaVersion": "3.27.0",
    "updateMode": "selective",
    "Common": {
      "class": "Tenant",
      "Shared": {
        "class": "Application",
        "template": "shared",
        "pool-1": {
          "class": "Pool",
          "members": [
            {
              "servicePort": 80,
              "serverAddresses": [
                "<IP_ADDRESS>"
              ]
            }
          ]
        },
        "pool-2": {
          "class": "Pool",
          "members": [
            {
              "servicePort": 80,
              "serverAddresses": [
                "<IP_ADDRESS>"
              ]
            }
          ]
        }
      }
    },
    "id": "autogen_cfb248a6-eac6-4550-8c33-7fbcc4418537",
    "controls": {
      "archiveTimestamp": "2021-04-23T14:24:06.433Z"
    }
  }
}

TMSH control :
(/Common/Shared)(tmos)# list ltm pool one-line
ltm pool pool-1 { members { <IP_ADDRESS>:http { address <IP_ADDRESS> metadata { source { value declaration } } } } min-active-members 1 }
ltm pool pool-2 { members { <IP_ADDRESS>:http { address <IP_ADDRESS> metadata { source { value declaration } } } } min-active-members 1 }

Add a pool in /Common/Shared using patch method :

{
	"class": "AS3",
	"action": "patch",
	"patchBody": [
		{
			"op": "add",
			"path": "/Common/Shared/pool_3",
			"value": {
				"class": "Pool",
				"members": [
					{
						"servicePort": 80,
						"serverAddresses": [
							"<IP_ADDRESS>"
						]
					}
				]
			}
		}
	]
}

AS3 return an error :

{
  "results": [
    {
      "code": 200,
      "message": "success",
      "lineCount": 17,
      "host": "localhost",
      "tenant": "Common",
      "runTime": 2805
    },
    {
      "code": 422,
      "message": "declaration failed",
      "response": "01070110:3: Node address '/Common/Shared/<IP_ADDRESS>' is referenced by a member of pool '/Common/Shared/pool-2'.",
      "host": "localhost",
      "tenant": "Common",
      "runTime": 3097
    }
  ],
  "declaration": {
    "Common": {
      "class": "Tenant",
      "Shared": {
        "class": "Application",
        "template": "shared",
        "pool-1": {
          "class": "Pool",
          "members": [
            {
              "servicePort": 80,
              "serverAddresses": [
                "<IP_ADDRESS>"
              ]
            }
          ]
        },
        "pool-2": {
          "class": "Pool",
          "members": [
            {
              "servicePort": 80,
              "serverAddresses": [
                "<IP_ADDRESS>"
              ]
            }
          ]
        }
      }
    },
    "class": "ADC",
    "schemaVersion": "3.27.0",
    "updateMode": "selective",
    "id": "autogen_0e256b87-22dd-4253-b6cb-e787f7a03f68",
    "controls": {
      "archiveTimestamp": "2021-04-23T14:31:47.129Z"
    }
  },
  "code": 207
}

TMSH control :
(/Common/Shared)(tmos)# list ltm pool one-line
ltm pool pool-1 { members { <IP_ADDRESS>:http { address <IP_ADDRESS> metadata { source { value declaration } } } } min-active-members 1 }
ltm pool pool-2 { members { <IP_ADDRESS>:http { address <IP_ADDRESS> metadata { source { value declaration } } } } min-active-members 1 }
ltm pool pool_3 { members { <IP_ADDRESS>:http { address <IP_ADDRESS> metadata { source { value declaration } } } } min-active-members 1 }

Even if AS3 return an error, pool is created.
Expected Behavior
No error should be return in this case.
Tests done in version < 3.27 are fines

Thank you for reporting this. I have confirmed the bug and added it to our internal product backlog as AUTOTOOL-2457.

It looks like this bug was resolved by some other work that was done for the 3.29.0 release.

This issue has been resolved by the 3.29.0 release.


Feat: Implement All Search page

Describe the feature
I would like to work on implementing the all search page from the new design.
Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I have checked the existing issues
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

I hope you're doing great! As a GSSoC contributor, I'm keen on ramping up my involvement for GSSoC'24. Could you please assign this issue to me? I'm excited to continue contributing to the project. Thanks a bunch!

@The-Phoenics you can work on it.


Boogie fixed point engine

@kenmcmil , @akashlal , @shuvendu-lahiri : I am looking into the VC generation code in Boogie and trying to figure out what cleanup is required.  I came across the  file FixedpointVC.cs with a lot of interesting code in it.  Is this code being maintained and used in Microsoft? Are there any tests for it?
cc: @RustanLeino, @michael-emmi, @zvonimir, @bkragl

That sounds like it is part of the interface to Horn solvers that I hacked in long ago. However, I'm not using or maintaining it, so it has probably suffered from bit rot. It is probably only used from corral. If there are no current users, it might be best to deprecate it.

I remember now. Its not central to Corral, but there are some folks who experiment with this code, so best to keep it for now.


Seperate live integration tests - resolves #61

/integration_test

/integration_test

/integration_test

/integration_test

/integration_test

/test

/test


Firebase login

User login with Firebase.
We want an optional feature to log with FB/Google/GitHub/password
(can be a subset of that, if it makes it easier), so that:

a) we keep track of the level progress
b) people are able to SAVE and SHARE levels they created

While details of a) and b) are on our side (basically, serialization
and deserialization of game progress and levels).
Right now just prepare some dummy stuff, e.g. a list of
[{id: 1, status: 'solved', score: 100}, {id: 2, status: 'solved', score: 75}]

saved locally
synced if logged in (right now you can add a manual button, later we see when to apply these actions)

See #51 - thx @piotrgajcy !


Correcting the capability description which states that the property is ...

...ignored when destination is flowfile attribute instead of content.  This closes NIFI-356.

Hi Apiri!
Thanks for the correction. Could you begin the commit message with NIFI-356 rather than at the end?
e.g.
"NIFI-356 Correct capability description for EvaluateXPath.
Update the capability description to state that the property is ignored when the destination is flowfile-attribute."

Looks like I was too slow. Thanks again Apiri.

We are good with the ticket ref anywhere in the message:
"https://www.apache.org/dev/svngit2jira.html with the trigger activating on the present of a NIFI-### anywhere in the commmit message"

Sure, it's just much easier to scan through commits when the tickets are at the start, especially in an abbreviated git history.

Understood.  I was just trying to find a non abbrev form of this when your note came in.  So totally with you.


DynamicNUTS (via DynamicHMC) no longer works in Julia v1.9.

Running e.g.:
using Turing, MCMCChains, DynamicHMC, AdvancedHMC
chain = sample(model, DynamicNUTS(), 1000, thinning = 3, discard_adapt = true)
throws the following error:
ERROR: UndefVarError: DynamicNUTS not defined

I assume you use Turing >= 0.28? Since Turing 0.28 you have to use sample(model, externalsampler(DynamicHMC.NUTS()), 1_000: ...): https://turinglang.org/v0.28/docs/using-turing/dynamichmc/

Thanks so much! I missed that. I'll close the issue.


Seeking help in regarding to Compiler options on Java Project

I do realize that there is possibility to configure Compile Option in Android Project.
For example, I could make the following configuration in an Android Project to generate default setter method.
defaultConfig {
    javaCompileOptions {
        annotationProcessorOptions {
            includeCompileClasspath false
            arguments = ['autovaluegson.mutableAdaptersWithDefaultSetters': 'true']
        }
    }
}

However, I do not know how to make it applicable on a Java Project.  I had tried to google it online but get no luck. Any help or hint would be appreciated.

You can look up the JavaCompile task and then add to its compilerArgs the
options starting with -A. Like "-Afoo=bar".
On Tue, Oct 24, 2017 at 3:22 PM TonyTang<EMAIL_ADDRESS>wrote:

I do realize that there is possibility to configure Compile Option
https://github.com/rharter/auto-value-gson#compiler-options in Android
Project.
For example, I could make the following configuration in an Android
Project to generate default setter method.
defaultConfig {
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath false
arguments = ['autovaluegson.mutableAdaptersWithDefaultSetters': 'true']
}
}
}
However, I do not know how to make it applicable on a Java Project. I had
tried to google it online but get no luck. Any help or hint would be
appreciated.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/rharter/auto-value-gson/issues/154, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAEEESZ-JE-XlfwTgpLHYMUsfVn9YQq5ks5svgDQgaJpZM4QEnOH
.

Thanks a lot for the hint.  It works perfect. Here is the snippet just in case anyone else who is wondering.
apply plugin: 'java'
compileJava {
    options.compilerArgs << '-Aautovaluegson.mutableAdaptersWithDefaultSetters=true'
}

Great. I was mobile or I would have given you a more copy/paste example!
On Tue, Oct 24, 2017 at 6:32 PM TonyTang<EMAIL_ADDRESS>wrote:

Thanks a lot for the hint. It works perfect. Here is the snippet just in
case anyone else who is wondering.
apply plugin: 'java'
compileJava {
options.compilerArgs << '-Aautovaluegson.mutableAdaptersWithDefaultSetters=true'
}
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/rharter/auto-value-gson/issues/154#issuecomment-339087901,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAEEERDxDi8yitBHYeNJfi5NG88AGx40ks5svi0rgaJpZM4QEnOH
.

No worry at all. It could better help me.  AND You are just everywhere. LoL


Problem with swa_utils

Hi. Can you help please. I can not figure out this error. I use pytorch=1.4.0 torchvision=0.5.0 cudatoolkit=10.1

Thanks @akartsight
It is my mistake.
swa_utils is used in the latest pytorch. I just involve it in the repo at
https://github.com/layumi/person-reid-3d/blob/master/swa_utils.py

Thanks @akartsight
It is my mistake.
swa_utils is used in the latest pytorch. I just involve it in the repo at
https://github.com/layumi/person-reid-3d/blob/master/swa_utils.py

Thanks, it works. But could you tell me about the dataset (Market (2D + 3D)) I downloaded it in order to skip the preparation step. Now I can't figure out what path it should have in order to start training.

Just put the datasets in the same folder of the code.
├── 2DMarket\
│   ├── query/
│   ├── train_all/
│   ├── ...
├── 3DMarket+bg\
│   ├── query/
│   ├── train_all/
│   ├── ...
├── train.py
├── test.py
├── ...

Just put the datasets in the same folder of the code.
├── 2DMarket\
│   ├── query/
│   ├── train_all/
│   ├── ...
├── 3DMarket+bg\
│   ├── query/
│   ├── train_all/
│   ├── ...
├── train.py
├── test.py
├── ...

What about this? Thanks for your help

Just put the datasets in the same folder of the code.
├── 2DMarket\
│   ├── query/
│   ├── train_all/
│   ├── ...
├── 3DMarket+bg\
│   ├── query/
│   ├── train_all/
│   ├── ...
├── train.py
├── test.py
├── ...

Hello again. I managed to run the code. Could you explain what it means. Rank@1: 0.794537 Rank @ 5: 0.921318 Rank @ 10: 0.949822 mAP: 0.580073. And how to use my pictures


bit changing pattern

I have used your code and really helpful. I have one question regarding below part of your code.
// For example [0H|1L] [2H|3L] for ZZAGG or [0L|1L] [2L|3L] for ZZIAGG
// | \ | \ | / | /
// [0L|1H] [2L|3H] [0H|1H] [2H|3H]
I have a P5 LED panel it has like this
[0L|8L] [2L|10L]
| \ |
[0H|8H] [2H|10H]
I have tried several ways by editing your code but couldn't understand how it works.
Please help me to resolve this.

i have edited code as,
// Byte split pattern - like ZAGZIG but after every 4 bit (starts on upper part)
    if (_scan_pattern == ZZIAGG )
    {
      if (bit_select>3)
     bit_select +=4;
  else{
    total_offset_r--;
	bit_select +=4;
  }

`
and
if (_scan_pattern == ZZIAGG )
{

  if (bit_select>3)
  {
    total_offset_r--;
    bit_select -=4;
  }
}


[DO NOT MERGE] Auto PR to update dependencies of istio

This PR will be merged automatically once checks are successful.
none

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
bead6790f23f4fe81e8ffef5d63a59245e79800a
link
/test istio-presubmit

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.


Preprocessor support

Thinking LESS, SASS & PostCSS
Also, work a bit on the responsiveness for larger displays while you are at it.

TODO: add a neat example with one of the preprocessors


basic VMI restart endpoint

What this PR does / why we need it:
It provides a basic VMI restart endpoint.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
I still have to add tests, in progress.
Release note:

a new endpoint which is providing a VM restart functionality

ci test please

Before merging this PR, I would like someone to merge this one https://github.com/kubevirt/kubevirt/pull/1687/files, after that I have to update unit tests here.

From my perspective PR is done, it's rebased against https://github.com/kubevirt/kubevirt/pull/1687 and unit tests are up to date.

@slintes that's a really good point, I will change that now. I see we return bad HTTP code in remoteExec func as well (BadRequest when resource does not exist yet), however, this is for a different PR.

@slintes and you're right about PUT, it should be because resource already exists and url is known according to the RFC doc.

HTTP method changed to PUT, let's wait for CI

failing tests are not related to the PR


Fix relationship for pinned files

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests


fix collect_list and collect_set should always not null

cherry-pick from master
PR: #25592
commit id: 26f8c7e35260010da5132848e1fc80f6ec430736
Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 48.54 seconds
stream load tsv:          578 seconds loaded<PHONE_NUMBER>9 Bytes, about 123 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          32 seconds loaded 861443392 Bytes, about 25 MB/s
insert into select:          29.7 seconds inserted 10000000 Rows, about 336K ops/s
storage size:<PHONE_NUMBER>5 Bytes


Yatin: Watch linztechnologies.com

Yatin requests the watch of the watch_keyword linztechnologies\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

linztechnologies\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Ryan M in Charcoal HQ


Does cargo fmt update registry index and lockfile?

Related to https://github.com/rust-lang/cargo/issues/7712
I feel that cargo fmt could be significantly slower than this command:
git ls-files -z '*.rs' | xargs -0 rustfmt --edition=2018

Is that because cargo fmt does more initiate steps, including update registry index?

hey @lzutao. Regarding the edition question in the linked thread, rustfmt 1.x uses the 2015 edition by default, however rustfmt 2.x will be using the 2018 edition by default. That's why the --edition opt is required when running rustfmt 1.x directly without a config file.
Regarding cargo fmt, yes it queries the workspace to determine the various params/opts to be passed to rustfmt (which amongst other things, includes the target edition for all the packages that will be formatted), and this involves running other commands like cargo metadata.
AFAIK cargo fmt is not explicitly/deliberately updating the lockfile nor the registry index, but I would not be surprised if cargo metadata does so (at least in certain situations)

@lzutao AFAICT, if you run cargo fmt --all in the fresh environment, then as @calebcartwright pointed out, cargo metadata could be updating the registry indexes.
If you are experiencing the delay in the CI environment, the delay may be hidden by running cargo build or cargo test before running cargo fmt.

cargo fmt relies on cargo metadata which is recursive to crate dependencies is inevitable.
We could write this to known issues or close this one if you prefer.

@lzutao - what's the full cargo fmt command you are running? Are you including the --all flag by any chance?

Yes, I often use cargo fmt --all to do formatting.

Is that because you're often working in large, multi-package/crate workspaces that have local path based dependencies you also want to format? Personally I wouldn't recommend using the --all flag unless it's really needed.
Here's the description of the --all flag for reference:
Format all packages, and also their local path-based dependencies

Running cargo fmt in the root directory of a workspace will still support formatting all the crates in the workspace, just not the local path-based dependencies

Oh, that's really helpful. Thank you.
But should we note this to README file?

In https://github.com/rust-lang/rustfmt#checking-style-on-a-ci-server, it is recommended
to use cargo fmt --all -- --check?

In https://github.com/rust-lang/rustfmt#checking-style-on-a-ci-server, it is recommended
to use cargo fmt --all -- --check?

So it is, thanks for pointing that out!
IMO that should be changed to cargo fmt -- --check. There are certainly some use cases where the --all flag is useful, but it's definitely not something needed in every use case and that should be reflected accordingly in that readme section.

IMO that should be changed to cargo fmt -- --check.

Agreed :+1: I will update the README. Meanwhile, I will be closing this as resolved.


Arduino Nano 3.0

Hi,
Will this support with Arduino Nano 3.0 ?
Thanks
Shashika

Hi, @Shashika007
There is no support plan as it is not possible in the current way.
Please refer to #17 for more details.

@OpusK Thank you.


Parallelize image generation to speed up CI process

Currently there are not that many images to build, but as time goes on we will want to be able to spin up concurrent image builds to speed up the process.
This will require adding the idea of "paging" into the build CLI and then some tweaks to the GitHub Actions workflow files.

Resolved with #228.


NIFI-3944 Update docs and screenshots for Component Versioning

Added more content to Component Versions section
Updated screenshots for version info now being shown in the processors on the canvas and in processor settings
Cleaned up other images for consistency
Noticed and corrected missing context menu selections as a result of NIFI-3181

Will Review....

Thanks @andrewmlim this has been merged to master.


Philippjfr/register kernel 2

fixes #10
supercedes #21

I'm pointing out that this PR causes us to expose the Jupyter kernel to viewers of a push_notebook plot. This should be revisited in the future.


Fix a typo in "Bootstrap customizations"

Changed "you should not switch to using hooks" to "you should now switch to using hooks".

(I'm assuming this is a typo at least.)

Ha ha, yes it is indeed a typo. Thanks for fixing!
ALSO, OMG FIRST CONTRIBUTION!! You win the internet today @TimMoore!


esp32c3: uart1 not working

Based on configuration,
tools/configure.sh boards/risc-v/esp32c3/esp32c3-devkit/configs/usbconsole,
enable following configs
+CONFIG_ESP32C3_UART1=y
+CONFIG_ESP32C3_UART1_RXPIN=20
+CONFIG_ESP32C3_UART1_TXPIN=21

On device, It will stuck when writing data to ttyS0. Backtrace shows it's waiting in function uart_tcdrain.
nsh> ls /dev
/dev:
console
null
ttyACM0
ttyS0
zero
nsh> echo 123 > /dev/ttyS0 ## stuck here

@XuNeo if you use UART0 and send data do UART1, does it work? Maybe the issue is related to USB SERIAL/JTAG driver

@acassis Hi Alan,
Thanks for your quick responding.
I tried it with defconfig of esp32c3-devkit/configs/nsh, and  added +CONFIG_ESP32C3_UART1=y, unfortunately issue still presents.


Edit Profile characters

If you add a bunch of quotations or non-standard character to Edit Profile's textfields, it crashes.
This also happened to me in the lab environment when I was making a profile from the login screen but I havent been able to reproduce that.

We need to sanitize some of our fields, like for username, we should restrict it to alpha-numeric, and for other fields, alpha-numeric with spaces and maybe a few symbols (like email addresses).

Cant reproduce so closed for now lol


Temporarily handle error from contract for

Coverage decreased (-0.001%) to 35.364% when pulling 5ddc8193ab24d758c4a204e996f8a0db50a64c09 on qingweibinary:qingwei/hanlde_contract_for_error into 1b2989a3191a2c933a1ed34d4b44ec8ca316e50f on binary-com:master.


[Feedback wanted] Pyvespa Querybuilder API

Querybuilder in Pyvespa
We have been working on a draft for implementing support for building YQL-queries programmatically with pyvespa.
The goal is to make it as ergonomic as possible for users to build complex queries.
We would like feedback on the API-proposal from potential users.
Proposal
The WIP unit tests looks like this as of now.
import unittest
from vespa.querybuilder import Query, Q, Queryfield, G, Condition

class TestQueryBuilder(unittest.TestCase):
    def test_dotProduct_with_annotations(self):
        condition = Q.dotProduct(
            "weightedset_field",
            {"feature1": 1, "feature2": 2},
            annotations={"label": "myDotProduct"},
        )
        q = Query(select_fields="*").from_("querybuilder").where(condition)
        expected = 'select * from querybuilder where ({label:"myDotProduct"}dotProduct(weightedset_field, {"feature1":1,"feature2":2}))'
        self.assertEqual(q, expected)
        return q

    def test_geoLocation_with_annotations(self):
        condition = Q.geoLocation(
            "location_field",
            37.7749,
            -122.4194,
            "10km",
            annotations={"targetHits": 100},
        )
        q = Query(select_fields="*").from_("querybuilder").where(condition)
        expected = 'select * from querybuilder where ({targetHits:100}geoLocation(location_field, 37.7749, -122.4194, "10km"))'
        self.assertEqual(q, expected)
        return q

    def test_select_specific_fields(self):
        f1 = Queryfield("f1")
        condition = f1.contains("v1")
        q = Query(select_fields=["f1", "f2"]).from_("sd1").where(condition)

        self.assertEqual(q, 'select f1, f2 from sd1 where f1 contains "v1"')

    def test_select_from_specific_sources(self):
        f1 = Queryfield("f1")
        condition = f1.contains("v1")
        q = Query(select_fields="*").from_("sd1").where(condition)

        self.assertEqual(q, 'select * from sd1 where f1 contains "v1"')

    def test_select_from_multiples_sources(self):
        f1 = Queryfield("f1")
        condition = f1.contains("v1")
        q = Query(select_fields="*").from_("sd1", "sd2").where(condition)

        self.assertEqual(q, 'select * from sd1, sd2 where f1 contains "v1"')

    def test_basic_and_andnot_or_offset_limit_param_order_by_and_contains(self):
        f1 = Queryfield("f1")
        f2 = Queryfield("f2")
        f3 = Queryfield("f3")
        f4 = Queryfield("f4")
        condition = ((f1.contains("v1") & f2.contains("v2")) | f3.contains("v3")) & (
            ~f4.contains("v4")
        )
        q = (
            Query(select_fields="*")
            .from_("querybuilder")
            .where(condition)
            .set_offset(1)
            .set_limit(2)
            .set_timeout(3000)
            .orderByDesc("age")
            .orderByAsc("duration")
        )

        expected = 'select * from querybuilder where ((f1 contains "v1" and f2 contains "v2") or f3 contains "v3") and !(f4 contains "v4") order by age desc, duration asc limit 2 offset 1 timeout 3000'
        self.assertEqual(q, expected)
        return q

    def test_matches(self):
        condition = (
            (Queryfield("f1").matches("v1") & Queryfield("f2").matches("v2"))
            | Queryfield("f3").matches("v3")
        ) & ~Queryfield("f4").matches("v4")
        q = Query(select_fields="*").from_("sd1").where(condition)
        expected = 'select * from sd1 where ((f1 matches "v1" and f2 matches "v2") or f3 matches "v3") and !(f4 matches "v4")'
        self.assertEqual(q, expected)

    def test_nested_queries(self):
        nested_query = (
            Queryfield("f2").contains("2") & Queryfield("f3").contains("3")
        ) | (Queryfield("f2").contains("4") & ~Queryfield("f3").contains("5"))
        condition = Queryfield("f1").contains("1") & ~nested_query
        q = Query(select_fields="*").from_("sd1").where(condition)
        expected = 'select * from sd1 where f1 contains "1" and (!((f2 contains "2" and f3 contains "3") or (f2 contains "4" and !(f3 contains "5"))))'
        self.assertEqual(q, expected)

    def test_userInput_with_and_without_defaultIndex(self):
        condition = Q.userQuery(value="value1") & Q.userQuery(
            index="index", value="value2"
        )
        q = Query(select_fields="*").from_("sd1").where(condition)
        expected = 'select * from sd1 where userQuery("value1") and ({"defaultIndex":"index"})userQuery("value2")'
        self.assertEqual(q, expected)

    def test_fields_duration(self):
        f1 = Queryfield("subject")
        f2 = Queryfield("display_date")
        f3 = Queryfield("duration")
        condition = Query(select_fields=[f1, f2]).from_("calendar").where(f3 > 0)
        expected = "select subject, display_date from calendar where duration > 0"
        self.assertEqual(condition, expected)

    def test_nearest_neighbor(self):
        condition_uq = Q.userQuery()
        condition_nn = Q.nearestNeighbor(
            field="dense_rep", query_vector="q_dense", annotations={"targetHits": 10}
        )
        q = (
            Query(select_fields=["id, text"])
            .from_("m")
            .where(condition_uq | condition_nn)
        )
        expected = "select id, text from m where userQuery() or ({targetHits:10}nearestNeighbor(dense_rep, q_dense))"
        self.assertEqual(q, expected)

    def test_build_many_nn_operators(self):
        self.maxDiff = None
        conditions = [
            Q.nearestNeighbor(
                field="colbert",
                query_vector=f"binary_vector_{i}",
                annotations={"targetHits": 100},
            )
            for i in range(32)
        ]
        # Use Condition.any to combine conditions with OR
        q = (
            Query(select_fields="*")
            .from_("doc")
            .where(condition=Condition.any(*conditions))
        )
        expected = "select * from doc where " + " or ".join(
            [
                f"({{targetHits:100}}nearestNeighbor(colbert, binary_vector_{i}))"
                for i in range(32)
            ]
        )
        self.assertEqual(q, expected)

    def test_field_comparison_operators(self):
        f1 = Queryfield("age")
        condition = (f1 > 30) & (f1 <= 50)
        q = Query(select_fields="*").from_("people").where(condition)
        expected = "select * from people where age > 30 and age <= 50"
        self.assertEqual(q, expected)

    def test_field_in_range(self):
        f1 = Queryfield("age")
        condition = f1.in_range(18, 65)
        q = Query(select_fields="*").from_("people").where(condition)
        expected = "select * from people where range(age, 18, 65)"
        self.assertEqual(q, expected)

    def test_field_annotation(self):
        f1 = Queryfield("title")
        annotations = {"highlight": True}
        annotated_field = f1.annotate(annotations)
        q = Query(select_fields="*").from_("articles").where(annotated_field)
        expected = "select * from articles where ({highlight:true})title"
        self.assertEqual(q, expected)

    def test_condition_annotation(self):
        f1 = Queryfield("title")
        condition = f1.contains("Python")
        annotated_condition = condition.annotate({"filter": True})
        q = Query(select_fields="*").from_("articles").where(annotated_condition)
        expected = 'select * from articles where ({filter:true})title contains "Python"'
        self.assertEqual(q, expected)

    def test_grouping_aggregation(self):
        grouping = G.all(G.group("category"), G.output(G.count()))
        q = Query(select_fields="*").from_("products").group(grouping)
        expected = "select * from products | all(group(category) output(count()))"
        self.assertEqual(q, expected)

    def test_add_parameter(self):
        f1 = Queryfield("title")
        condition = f1.contains("Python")
        q = (
            Query(select_fields="*")
            .from_("articles")
            .where(condition)
            .add_parameter("tracelevel", 1)
        )
        expected = 'select * from articles where title contains "Python"&tracelevel=1'
        self.assertEqual(q, expected)

    def test_custom_ranking_expression(self):
        condition = Q.rank(
            Q.userQuery(), Q.dotProduct("embedding", {"feature1": 1, "feature2": 2})
        )
        q = Query(select_fields="*").from_("documents").where(condition)
        expected = 'select * from documents where rank(userQuery(), dotProduct(embedding, {"feature1":1,"feature2":2}))'
        self.assertEqual(q, expected)

    def test_wand(self):
        condition = Q.wand("keywords", {"apple": 10, "banana": 20})
        q = Query(select_fields="*").from_("fruits").where(condition)
        expected = 'select * from fruits where wand(keywords, {"apple":10,"banana":20})'
        self.assertEqual(q, expected)

    def test_weakand(self):
        condition1 = Queryfield("title").contains("Python")
        condition2 = Queryfield("description").contains("Programming")
        condition = Q.weakAnd(
            condition1, condition2, annotations={"targetNumHits": 100}
        )
        q = Query(select_fields="*").from_("articles").where(condition)
        expected = 'select * from articles where ({"targetNumHits":100}weakAnd(title contains "Python", description contains "Programming"))'
        self.assertEqual(q, expected)

    def test_geoLocation(self):
        condition = Q.geoLocation("location_field", 37.7749, -122.4194, "10km")
        q = Query(select_fields="*").from_("places").where(condition)
        expected = 'select * from places where geoLocation(location_field, 37.7749, -122.4194, "10km")'
        self.assertEqual(q, expected)

    def test_condition_all_any(self):
        c1 = Queryfield("f1").contains("v1")
        c2 = Queryfield("f2").contains("v2")
        c3 = Queryfield("f3").contains("v3")
        condition = Condition.all(c1, c2, Condition.any(c3, ~c1))
        q = Query(select_fields="*").from_("sd1").where(condition)
        expected = 'select * from sd1 where f1 contains "v1" and f2 contains "v2" and (f3 contains "v3" or !(f1 contains "v1"))'
        self.assertEqual(q, expected)

    def test_order_by_with_annotations(self):
        f1 = "relevance"
        f2 = "price"
        annotations = {"strength": 0.5}
        q = (
            Query(select_fields="*")
            .from_("products")
            .orderByDesc(f1, annotations)
            .orderByAsc(f2)
        )
        expected = (
            'select * from products order by {"strength":0.5}relevance desc, price asc'
        )
        self.assertEqual(q, expected)

    def test_field_comparison_methods(self):
        f1 = Queryfield("age")
        condition = f1.ge(18) & f1.lt(30)
        q = Query(select_fields="*").from_("users").where(condition)
        expected = "select * from users where age >= 18 and age < 30"
        self.assertEqual(q, expected)

    def test_filter_annotation(self):
        f1 = Queryfield("title")
        condition = f1.contains("Python").annotate({"filter": True})
        q = Query(select_fields="*").from_("articles").where(condition)
        expected = 'select * from articles where ({filter:true})title contains "Python"'
        self.assertEqual(q, expected)

    def test_nonEmpty(self):
        condition = Q.nonEmpty(Queryfield("comments").eq("any_value"))
        q = Query(select_fields="*").from_("posts").where(condition)
        expected = 'select * from posts where nonEmpty(comments = "any_value")'
        self.assertEqual(q, expected)

    def test_dotProduct(self):
        condition = Q.dotProduct("vector_field", {"feature1": 1, "feature2": 2})
        q = Query(select_fields="*").from_("vectors").where(condition)
        expected = 'select * from vectors where dotProduct(vector_field, {"feature1":1,"feature2":2})'
        self.assertEqual(q, expected)

    def test_in_range_string_values(self):
        f1 = Queryfield("date")
        condition = f1.in_range("2021-01-01", "2021-12-31")
        q = Query(select_fields="*").from_("events").where(condition)
        expected = "select * from events where range(date, 2021-01-01, 2021-12-31)"
        self.assertEqual(q, expected)

    def test_condition_inversion(self):
        f1 = Queryfield("status")
        condition = ~f1.eq("inactive")
        q = Query(select_fields="*").from_("users").where(condition)
        expected = 'select * from users where !(status = "inactive")'
        self.assertEqual(q, expected)

    def test_multiple_parameters(self):
        f1 = Queryfield("title")
        condition = f1.contains("Python")
        q = (
            Query(select_fields="*")
            .from_("articles")
            .where(condition)
            .add_parameter("tracelevel", 1)
            .add_parameter("language", "en")
        )
        expected = 'select * from articles where title contains "Python"&tracelevel=1&language=en'
        self.assertEqual(q, expected)

    def test_multiple_groupings(self):
        grouping = G.all(
            G.group("category"),
            G.maxRtn(10),
            G.output(G.count()),
            G.each(G.group("subcategory"), G.output(G.summary())),
        )
        q = Query(select_fields="*").from_("products").group(grouping)
        expected = "select * from products | all(group(category) max(10) output(count()) each(group(subcategory) output(summary())))"
        self.assertEqual(q, expected)

    def test_default_index_annotation(self):
        condition = Q.userQuery("search terms", index="default_field")
        q = Query(select_fields="*").from_("documents").where(condition)
        expected = 'select * from documents where ({"defaultIndex":"default_field"})userQuery("search terms")'
        self.assertEqual(q, expected)

    def test_Q_p_function(self):
        condition = Q.p(
            Queryfield("f1").contains("v1"),
            Queryfield("f2").contains("v2"),
            Queryfield("f3").contains("v3"),
        )
        q = Query(select_fields="*").from_("sd1").where(condition)
        expected = 'select * from sd1 where f1 contains "v1" and f2 contains "v2" and f3 contains "v3"'
        self.assertEqual(q, expected)

    def test_rank_multiple_conditions(self):
        condition = Q.rank(
            Q.userQuery(),
            Q.dotProduct("embedding", {"feature1": 1}),
            Q.weightedSet("tags", {"tag1": 2}),
        )
        q = Query(select_fields="*").from_("documents").where(condition)
        expected = 'select * from documents where rank(userQuery(), dotProduct(embedding, {"feature1":1}), weightedSet(tags, {"tag1":2}))'
        self.assertEqual(q, expected)

    def test_nonEmpty_with_annotations(self):
        annotated_field = Queryfield("comments").annotate({"filter": True})
        condition = Q.nonEmpty(annotated_field)
        q = Query(select_fields="*").from_("posts").where(condition)
        expected = "select * from posts where nonEmpty(({filter:true})comments)"
        self.assertEqual(q, expected)

    def test_weight_annotation(self):
        condition = Queryfield("title").contains("heads", annotations={"weight": 200})
        q = Query(select_fields="*").from_("s1").where(condition)
        expected = 'select * from s1 where title contains({weight:200}"heads")'
        self.assertEqual(q, expected)

    def test_nearest_neighbor_annotations(self):
        condition = Q.nearestNeighbor(
            field="dense_rep", query_vector="q_dense", annotations={"targetHits": 10}
        )
        q = Query(select_fields=["id, text"]).from_("m").where(condition)
        expected = "select id, text from m where ({targetHits:10}nearestNeighbor(dense_rep, q_dense))"
        self.assertEqual(q, expected)

    def test_phrase(self):
        text = Queryfield("text")
        condition = text.contains(Q.phrase("st", "louis", "blues"))
        query = Q.select("*").where(condition)
        expected = 'select * from * where text contains phrase("st", "louis", "blues")'
        self.assertEqual(query, expected)

    def test_near(self):
        title = Queryfield("title")
        condition = title.contains(Q.near("madonna", "saint"))
        query = Q.select("*").where(condition)
        expected = 'select * from * where title contains near("madonna", "saint")'
        self.assertEqual(query, expected)

    def test_onear(self):
        title = Queryfield("title")
        condition = title.contains(Q.onear("madonna", "saint"))
        query = Q.select("*").where(condition)
        expected = 'select * from * where title contains onear("madonna", "saint")'
        self.assertEqual(query, expected)

    def test_sameElement(self):
        persons = Queryfield("persons")
        first_name = Queryfield("first_name")
        last_name = Queryfield("last_name")
        year_of_birth = Queryfield("year_of_birth")
        condition = persons.contains(
            Q.sameElement(
                first_name.contains("Joe"),
                last_name.contains("Smith"),
                year_of_birth < 1940,
            )
        )
        query = Q.select("*").where(condition)
        expected = 'select * from * where persons contains sameElement(first_name contains "Joe", last_name contains "Smith", year_of_birth < 1940)'
        self.assertEqual(query, expected)

    def test_equiv(self):
        fieldName = Queryfield("fieldName")
        condition = fieldName.contains(Q.equiv("A", "B"))
        query = Q.select("*").where(condition)
        expected = 'select * from * where fieldName contains equiv("A", "B")'
        self.assertEqual(query, expected)

    def test_uri(self):
        myUrlField = Queryfield("myUrlField")
        condition = myUrlField.contains(Q.uri("vespa.ai/foo"))
        query = Q.select("*").where(condition)
        expected = 'select * from * where myUrlField contains uri("vespa.ai/foo")'
        self.assertEqual(query, expected)

    def test_fuzzy(self):
        myStringAttribute = Queryfield("myStringAttribute")
        annotations = {"prefixLength": 1, "maxEditDistance": 2}
        condition = myStringAttribute.contains(
            Q.fuzzy("parantesis", annotations=annotations)
        )
        query = Q.select("*").where(condition)
        expected = 'select * from * where myStringAttribute contains ({prefixLength:1,maxEditDistance:2}fuzzy("parantesis"))'
        self.assertEqual(query, expected)

    def test_userInput(self):
        condition = Q.userInput("@animal")
        query = Q.select("*").where(condition).param("animal", "panda")
        expected = "select * from * where userInput(@animal)&animal=panda"
        self.assertEqual(query, expected)

    def test_in_operator(self):
        integer_field = Queryfield("integer_field")
        condition = integer_field.in_(10, 20, 30)
        query = Q.select("*").where(condition)
        expected = "select * from * where integer_field in (10, 20, 30)"
        self.assertEqual(query, expected)

    def test_predicate(self):
        condition = Q.predicate(
            "predicate_field",
            attributes={"gender": "Female"},
            range_attributes={"age": "20L"},
        )
        query = Q.select("*").where(condition)
        expected = 'select * from * where predicate(predicate_field,{"gender":"Female"},{"age":20L})'
        self.assertEqual(query, expected)

    def test_true(self):
        condition = Q.true()
        query = Q.select("*").where(condition)
        expected = "select * from * where true"
        self.assertEqual(query, expected)

    def test_false(self):
        condition = Q.false()
        query = Q.select("*").where(condition)
        expected = "select * from * where false"
        self.assertEqual(query, expected)

if __name__ == "__main__":
    unittest.main()

Feedback
Please post any feedback and/or modification suggestions to this below.
Now is the time to speak up! 😄

Nice! Do you plan to add support for pagination?

Thanks for the input.
The intention is to support setting limit and offset- see link
Also, continuations in grouping should be supported.
.set_limit(2)
.set_timeout(3000)

visiting is not the scope of this, but that also supports continuation.
Is that what you were thinking?

Hmmm, cool! - That should cover my use case!
So let's say my user delete a document from a folder, so we normally use offset to go over all documents for this specific file_id that exists in a streaming group ( by folder_id ) and call the delete operation for each document found.
Another use case is where we have a low topK ( 5 ) and we have a LLM tool that decides - are those sources enough to reply the question? If not, bring the next 5.
Still not sure if that's the best way, but it works. :)


Replace stable/dex with dex/dex

Self-explanatory issue:

Replace deprecated helm chart stable/dex with the official dex/dex chart

Another reason to do this is to be able to upgrade above vulnerable version https://github.com/dexidp/dex/security/advisories/GHSA-m9hp-7r99-94h5

When doing this task, please be mindful of ADR #0012 “Do not persist Dex”.


chore(setup/dx): configure editor and tools

invest in the developer experience by configuring tooling e.g. vscode,
eslint, prettier, husky, and commitlint; as outlined in the astro docs
for editor setup (https://docs.astro.build/en/editor-setup)

#2  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @lewxdev and the rest of your teammates on  Graphite


Components do not "adhere to WCAG accessibility guidelines"

Playing with your docs and adding a label to the example generates this React code
<FuiTextInput
  label="label"
  onChange={function noRefCheck(){}}
  placeholder="Placeholder"
  value=""
/>

which is rendered as divs with no association between the label an field nor even a role of label for the div that contains the label

label

         <input type="text" placeholder="Placeholder" class="fui-text-input-input" value="">

also worth noting that the default example uses placeholder instead of a label.
None of this adheres to WCAG guidelines nor do any of the form components.

Thanks for catching this 🙏
We addressed these issues

Added some comments to the referenced commit. Not sure I would consider this completely resolved. It is certainly a good step in the right direction tho.  Thanks for working on this quickly.  Happy to collaborate if you need more info.


No longer pushing to maven central?

In README.md, versions 2.0.3 and 2.0.4 are using third-party maven repos instead of maven central. Are you no longer pushing releases to maven central?

I was asking the same question: what's the problem?
Why did you close the project, do you have an answer?

I didn’t get a response to my question for 4 months and closed it out of frustration. I just implemented my own AMI library for internal use and gave up on this project.

Sorry folks, I can understand the frustration on this one.
The reality is currently we are serverly resource constrained due to a large project and this is unlikely to change in until the end of the year.
We are however keen to see a more continuous release schedule.
One of the blocking issue is release keys for maven.
Whilst we take a fairly liberal approach to adding contributors we are less keen to share the release keys.
The  issue is visibility. With a contributor it's easy to monitor contributions and wind them back if necessary with a maven release it's a little uglier.
As such we are looking for a simpler release mechanism that can be done via GitHub which will allow contributors to assist with releases.
As some of you know we have been experimenting with a maven plugin which can pull directly from GitHub tags. This seems to work but doesn't have the same visibility as maven Central and requires more work in the pom.
I've been keeping an eye on GitHub new registry feature.
https://help.github.com/en/articles/configuring-apache-maven-for-use-with-github-package-registry.
I rather like this technique as it means contributors can push a release and we have visibility.
But to move forward on this we need some help.
Would anyone be prorated to volunteer some time to investigate this feature?
We are happy to add you as a contributor providing you can show a history of productive contributions to any active Java based open source project.

In the comments regarding 11 in still of the opinion that it's still to early
There are large no's of project which still aren't ready for 9.
I would like to get some resource to make it package work with 9. I've gone blank right now but there is a manifest or similar that you can assess to an 8 project which removes a number of earrings when use in a 9 project.
The other option is we could create two release streams, an 8 stream and an 11 stream.
But again we need contributors to help.

I can't understand the problem related to maven: the deployment process is automated and if you don't want to share the keys you can just run the command to publish from a github tag.
BTW I use gradle and I'm unable to understand how to use the github repository so I'm still using version 1.0 of the software.
Java11 is the current LTS, it's already one year old, and it's the only java release available on all modern linux distributions (debian, ubuntu, etc) and so in my opinion it should be the baseline for a new version.
If there are projects stuck to old versions (that's strange since there are usually no big problems of compatibility) they can use an older asterisk-java release.

Alessandro,
our experience with maven central is that its actually quite painful to
push to maven central.
There are lots of rules you have to get right (osgi export, jar signing
.....).
If everything goes right it takes us about an hour, if it doesn't its a
mess to sort out (errors are cryptic the maven central UI is a pain to work
with).
Hence the suggestion of looking at the github registry option.
As to java 11 I think you are misunderstanding what the issues are.
A java library should always be behind the curve when it comes to java
version requirements as it opens it up to the library to the broadest no.
of users.
There is no inherent gain, at this point, in moving to java 11 as we aren't
about to refactor the code base to use any java 11 features.
The fact that modern OS' are shipping with java 11 is also not relevant as
we are talking about compile time requirements not run time requirements.
There are also significant no.s of libraries that don't work with java 9+
and I would expect we are still 2-3 years away from this no longer being an
issue.
I would also expect that there is some work to be done to create a java 9
compatible version (manifest etc). Again we would need a contributor to
help with this. As I've previously stated I wouldn't object to creating two
release branches an v8 and a v11 if we had someone that could do the work.
The gradle problem is certainly an issue which the suggest github registry
option would fix.
Brett
On Mon, 19 Aug 2019 at 16:26, Alessandro Polverini<EMAIL_ADDRESS>wrote:

I can't understand the problem related to maven: the deployment process is
automated and if you don't want to share the keys you can just run the
command to publish from a github tag.
BTW I use gradle and I'm unable to understand how to use the github
repository so I'm still using version 1.0 of the software.
Java11 is the current LTS, it's already one year old, and it's the only
java release available on all modern linux distributions (debian, ubuntu,
etc) and so in my opinion it should be the baseline for a new version.
If there are projects stuck to old versions (that's strange since there
are usually no big problems of compatibility) they can use an older
asterisk-java release.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/asterisk-java/asterisk-java/issues/292?email_source=notifications&email_token=AAG32OHHZGIJMIF2KWA64VTQFI4IXA5CNFSM4G7RR77KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4R2RXY#issuecomment-522430687,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAG32OEGQBO55QP2PFAH4ETQFI4IXANCNFSM4G7RR77A
.

Thanks for the explaination bsutton, highly appreciated.
I understand the policy about java11 but I suppose you can enable java11 syntax and generate java8 bytecode.
Anyway I can't see the problem with maven publishing: I myself publish a package I don't have time to work on it and other people does. When a new release is needed, after pulling the latest version, it's just a matter of doing something similar to

mvn versions:set -DnewVersion=X.Y.Z

or simply:

mvn clean deploy -P release

(of course I'm using maven Nexus plugin)
Is this different for you?


Check printer always returns no services

I tried this plugin, but on checking the printing services in the android it always returns none services. Can you please let me know what wrong am i doing with the code.
------Here is my code ------------
var app = {
// Application Constructor
initialize: function() {
this.bindEvents();
},
// Bind Event Listeners
//
// Bind any events that are required on startup. Common events are:
// 'load', 'deviceready', 'offline', and 'online'.
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
},
// deviceready Event Handler
//
// The scope of 'this' is the event. In order to call the 'receivedEvent'
// function, we must explicitly call 'app.receivedEvent(...);'
onDeviceReady: function() {
	cordova.plugins.printer.check(function (avail, count) {
		alert(avail ? 'Found ' + count + ' services' : 'No');

	});

    app.receivedEvent('deviceready');
},
// Update DOM on a Received Event
receivedEvent: function(id) {
    var parentElement = document.getElementById(id);
    var listeningElement = parentElement.querySelector('.listening');
    var receivedElement = parentElement.querySelector('.received');

    listeningElement.setAttribute('style', 'display:none;');
    receivedElement.setAttribute('style', 'display:block;');

    console.log('Received Event: ' + id);
}

};

Any solution to this? I am also facing the same problem.
#179

I'm seeing the same.  I've got 3 printer services running on my android device, and can print manually.  The calls to isAvailable() and check() return no services, unfortunately.

me too, i already install PrintHead and PrinterShare but still cannot found any.

The functions have been removed for upcoming release - closing it


xcode: added ios/osx target sdk selection

depends on features that are implemented in this pull request: https://github.com/bkaradzic/genie/pull/36

Manually merged this:
https://github.com/bkaradzic/bx/commit/be1a8f463f5532d13cd9bb17cc93be00edd39312

Thanks. Sorry about the strange pull request, I have done commit / pull from your branch in the wrong order.


Add versioning to lambda bucket

Code will change for the lambda function so we want to ensure we can
roll back to older versions in the S3 bucket.

Looks sensible. Merge away


compiling error for esp32s3(Failed to resolve component 'esp32s3') (IDFGH-13009)

i get this error .....Failed to resolve component 'esp32s3'
when i run this command make BOARD=GENERIC_S3
this is for lv_micropython (lvgl binding with micropython)

@arunkm490 I don't think that this is right place for this report. We don't support "make BOARD" nor micropython directly in ESP-IDF. Can you please explain more what you are using and how so I can direct to you the right place?

Ok, I think https://github.com/micropython/micropython/issues might be the right place to report this.
If I'm not mistaken then make BOARD=GENERIC_S3 is a build command for micropython.

thank u

Closing this since it seems unrelated to esp-idf


Some taxes not appearing in dashboard order screen, duplicated total info shown

Also lines 284 and 285 of Order.php seem to referencing values to do with tax that don't exist. We may need to check the order emails/receipts reflect the same information correctly.

This can be closed


[node-w3capi] extract api and rendering into two separate modules

I made the minimum changes necessary to extract W3C API operations and HTML rendering into separate modules.
I would like to make some tweaks to the API code and having it in a separate module will help with keeping changes isolated.

I added a second commit which mostly improves the readability of the API module.


ValueError: No JSON object could be decoded.

Hi, great looking project. I've just installed kodi and kodi-alexa clean today on ubuntu. When I try to do kodi.GetMovie() or anything similar I get the error "No JSON object could be detected". As such I haven't been able to generate the slot values for the skill yet. Any ideas?

You need to get the slot generator working before anything will work.
But otherwise, post kodi.log (with debugging enabled) and your relevant web server logs.  Be sure to scrub out IPs/passwords to keep them private.

Please post your question over here: http://forum.kodi.tv/showthread.php?tid=254502
Since I doubt this is an issue with the code, I'm closing this here, but we can help you on the forums.


[FEAT]: Create Issue forms and make the issue options more visually appealing

Currently, there is an 'issue template' issue has been raised for this repo, but no issue form which will help users in contributing.

I will add Issue Forms to the respective issues to make it easier for the contributor to raise it.

Here is an example of how a Bug Issue Form will look like 👇

and issue templates will be like:

I want to work on this issue. So, kindly assign this issue to me ( GSSOC'24 ).


Sensory perception of pain

Hi all,
I am annotating the metabotropic glutamate recepptor
type 8 and type 3 and I need this term:
sensory perception of pain; GO:0019233
---[p]regulation of sensory perception of pain
PMID:11561058 and 1109982
Thank you
Erika
Reported by: arike
Original Ticket: "geneontology/ontology-requests/3234":https://sourceforge.net/p/geneontology/ontology-requests/3234

thanks www.movied.org


Test-container: update version - configurable containers

Update the script to use new rt-app and also a configurable selection of containers

[x] Update rt-app, recompile
[x] Check if patch for calibration is still needed
[x] Edit script to accept other containers/programs, e.g. a software to be tested for stability

7afbced


Automate creating teams from CATME output

USER STORY:
As an instructor, I can import team assignments from CATME (see issue for format) and then the tool will automatically assign create "teams" in the GitHub organization and assign users to those teams.
BACKGROUND
https://www.catme.org is an online system that helps instructors:

create teams
collect peer feedback on teams

For instructors that use CATME to form teams, it would be helpful to take the output from CATME, and use that to automate the creation of teams in GitHub.

Revised: Implement a generic CSV team import that doesn't have to deal with messy CATME output.

I don't think that this needs to be tied to CATME. CATME Is one tool that can be used to generate teams. We just need to decide on a simple CSV fomat, e.g.,
studentemail, teamname
We could include an optional third item that grants the student permission as a "team maintainer," e.g., the student should be able to add members to the team. However, with this new system perhaps we no longer need to grant students this permission?
@pconrad @ProbablyFaiz, any comments?

@chundhau Agreed. I think iterating upon the feature we demoed during the meeting so it takes email instead of GitHub ID is the best approach.

Also, to address the second part of that: right now, we add all users to teams as maintainers of those teams. We can make this configurable if it's helpful.


Can't delete tags

Hi,
I searched for similar problems in other issues but I didn't find anything..
I'm unable to delete tags from the UI.
I can successfully delete comments.
When I try to delete some, I got a "Tag could not be removed" error message in the UI.
I also got the following entry in the logs :
Started DELETE "/portus/tags/8" for priv_IP at 2016-08-23 15:06:31 +0200
Cannot render console from priv_IP! Allowed networks: <IP_ADDRESS>, ::1, <IP_ADDRESS>/<IP_ADDRESS>
Processing by TagsController#destroy as HTML
  Parameters: {"authenticity_token"=>"055JT2yD3uDY9BvSd3R7TdzZGq/txGBbMYfdQODUv3YOBI2Up9wqTOxZC+r/0/zOG812NSblSQKisFYBlbRmsQ==", "id"=>"8"}
  User Load (138.6ms)  SELECT  `users`.* FROM `users` WHERE `users`.`id` = 2  ORDER BY `users`.`id` ASC LIMIT 1
   (3.4ms)  SELECT COUNT(*) FROM `registries`
  Tag Load (3.1ms)  SELECT  `tags`.* FROM `tags` WHERE `tags`.`id` = 8 LIMIT 1
  Repository Load (5.1ms)  SELECT  `repositories`.* FROM `repositories` WHERE `repositories`.`id` = 4 LIMIT 1
  SQL (25.0ms)  UPDATE `tags` SET `tags`.`marked` = 1 WHERE `tags`.`digest` = 'sha256:ebfa84fca81c3173346128246ac7edd4d5aef67fd67e17478e9c056b6b369108'
  Registry Load (1.1ms)  SELECT  `registries`.* FROM `registries`  ORDER BY `registries`.`id` ASC LIMIT 1
  Namespace Load (5.0ms)  SELECT  `namespaces`.* FROM `namespaces` WHERE `namespaces`.`id` = 5 LIMIT 1

Started GET "/portus/v2/token?account=portus&scope=repository%3Amyrepo%2Fmysql%3A%2A&service=priv.domain%3A5000" for priv_IP at 2016-08-23 15:06:33 +0200
Cannot render console from priv_IP! Allowed networks: <IP_ADDRESS>, ::1, <IP_ADDRESS>/<IP_ADDRESS>
Processing by Api::V2::TokensController#show as JSON
  Parameters: {"account"=>"portus", "scope"=>"repository:myrepo/mysql:*", "service"=>"priv.domain:5000"}
  User Load (0.4ms)  SELECT  `users`.* FROM `users` WHERE `users`.`username` = 'portus' LIMIT 1
  ApplicationToken Load (0.2ms)  SELECT `application_tokens`.* FROM `application_tokens` WHERE `application_tokens`.`user_id` = 1
  User Load (0.2ms)  SELECT  `users`.* FROM `users` WHERE `users`.`username` = 'portus'  ORDER BY `users`.`id` ASC LIMIT 1
   (0.1ms)  BEGIN
  SQL (8.6ms)  UPDATE `users` SET `failed_attempts` = 8, `updated_at` = '2016-08-23 13:06:33' WHERE `users`.`id` = 1
   (0.1ms)  COMMIT
Completed 401 Unauthorized in 88ms (ActiveRecord: 9.5ms)
Could not delete tag on the registry: Cannot obtain authorization token: #<Net::HTTPUnauthorized:0x00000008f2e740>
Redirected to https://priv.domain/portus/repositories/4
Completed 302 Found in 1051ms (ActiveRecord: 181.2ms)

My Portus installation is as follows :

Registry as a docker container
Portus is launched by Unicorn app server
I got an Apache2 reverse proxy for encryption and a few other things

ps : I enabled the tag/image deletion in the config.yml file
Thanks for reading !

Which version of Portus are you running? Are you sure priv.domain is reachable by Portus?

I replace my own ip with priv.domain for security reasons (public IP of a machine at work). So yes, this IP is reachable, I'm using it to get to Portus' UI :)
And I git cloned this repo 5 days ago, so I got the latest version (since the most recent commit was 8 days ago).

Have you also enabled image delete within the registry?
For reference: https://github.com/docker/distribution/blob/master/docs/configuration.md#delete

Yes I did :) Here is my registry config.yml
version: 0.1
loglevel: info
storage:
  filesystem:
    rootdirectory: /var/lib/docker-registry
  delete:
    enabled: true
http:
  addr: <IP_ADDRESS>:5000
  host: my.priv.domain

auth:
  token:
    realm: https://my.priv.domain/portus/v2/token
    service: my.priv.domain:5000
    issuer: my.priv.domain
    rootcertbundle: /ssl/my.priv.domain.pem

notifications:
  endpoints:
    - name: portus
      url: https://my.priv.domain/portus/v2/webhooks/events
      timeout: 500ms
      threshold: 5
      backoff: 1s

Thanks for your answer anyway :)

I also got 401 error when trying to do it manually with the registry web API.
I curl to get a token (and I also try with docker login before) :
curl "https://priv.domain/portus/v2/token?service=priv.domain:5000&scope=repository:my_repo/hw:pull,push"
And then, with that jwt, I curl again that way :
curl "https://priv.domain/-v -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IkNUTEY6RFBaWDozU0wyOjdNWUg6RVVURjpNQjVJOlI0Q1Y6NFJOQTpPR0lROlM2Q1M6UzZIVDpMVUpQIn0.eyJpc3MiOiJxbGYtc2VzaS1yZWdpc3RyeS5pbnJpYS5mciIsInN1YiI6bnVsbCwiYXVkIjoicWxmLXNlc2ktcmVnaXN0cnkuaW5yaWEuZnI6NTAwMCIsImlhdCI6MTQ3MjAyNTk5MywibmJmIjoxNDcyMDI1OTg4LCJleHAiOjE0NzIwMjYyOTMsImp0aSI6Im94OUMzMVU1NnlyU2FYV2RBcURCaUE2dXdDUGdRWks2RVZjN013dzVkWCIsImFjY2VzcyI6W119.x9-M050BAaKFQzO43yY_Q17rJjPSDJFJPkSYm9zQjKQgWyY7x45nS5JPv56tH1XYfbGPJtElMFSF75U2dpZ_p31zJTqkaaqQPjsJ7SGaROTCleaaYGpwRUxTm9mRIlDY6tppEQ9YIkDkMoDBRVCAJ2uau82DO9ljXCa12Gzq9H6cggn6895jOR43uC_K5W5Nv2_jAL5UBqFQejJrvQxrXhqF_p_aw98Ge8YIgFDJp_BQqGOkK7cM_8sKql7J_guBoL8dXH-VW4eAd_WNl5W4PMHBeVdKAfQA3H9M_GT0SQvZdhXqbBG6YMN3f741LiV1jtQWroMSpLwi2025XiXncw" https://priv.domain/v2/my_repo/hw/manifests/latest

Looks like it comes from serious issues with my storage backend (local storage with device-mapper).
And this comes from the registry which sometimes lets garbage behind him, when oftenly switching betweend storage backends.
I'm gonna close that issue, Portus wasn't the source of my problem.


Tidy up AWSShapeMember

Much of AWSShapeMember is repeated information from Codable. It is only there to enable the query parsing code. Now we have a Codable based QueryEncoder #187 we should be able to get rid of much of this structure and only include them when needed. Below is a list of the fields and what they are used for.

label: needed to link member variables with the rest of the data.
location: needed when a member variable is in a header variable, query, or part of the path.
type: currently needed to recognise response raw data payload bodies and lists when parsing HAL. The HAL requirement is removed by PR #189. We could use the encoding field to identify payload bodies. So we should be able to remove this.
required: not used can remove
encoding: this is used to identify how various objects are encoded, mainly collections in xml and queries.

Most member variables are output in the body and don’t have special encoding so we don’t need an AWSShapeMember output for them at all.

Given location and encoding are mutually exclusive we could combine them as they both define how variables are encoded. This could reduce AWSShapeMember to the following
public enum Encoding {
    case header(String)
    case query(String)
    case path(String)
    case blob
    case flatList
    case list(member: String)
    case flatMap(key: String, value: String)
    case map(entry: String, key: String, value: String)
}
struct AWSShapeMember {
    name: String
    encoding: Encoding
}

Slight issue, when searching for headers, query and path encoded variables AWSClient uses the variable name. When searching for collection encoding it uses the CodingKey stringValue which could be different.


Update RELEASE.md

Please fill out the below template as best you can.
Description of Issue
The RELEASE.md doc is out of date with the current generator.
The current generator creates the following for the RELEASE.md file
# How to release

This project is hosted on NPM.  You can see it [here][project-url].

Releasing the project requires these steps:

0. Verify the version number in `package.json`
1. Check for lint: `npm run lint`
2. Use a GitHub [project release][github-release-url] to release the project and tag (be sure it follows [semver][semantic-versioning])
3. `npm publish` (make sure it's uploaded to [npm][project-url])
4. Update to the next minor version in `package.json`

[project-url]: https://www.npmjs.com/package/<%= projectName %>/
[semantic-versioning]: http://semver.org/
[github-release-url]: https://help.github.com/articles/creating-releases/

With the addition of the release scripts within the package.json, this file needs to be updated to reference using those scripts. If one were to follow steps 0 through 2 in the current RELEASE.md and then use the release scripts in the package.json to publish to npm, there is a high possibility that a new tag will unintentionally be created and published to npm different from the tag created in step 2.
Expected Outcomes

RELEASE.md is generated with doc on usage of the release scripts within the package.json

Closing this since the generator no longer creates the RELEASE.md file. Logged https://github.com/cerner/terra-ui/issues/88 to get this updated.


Fix for -android like URLS

This was due to libs like com.google.guava:guava:32.1.3-jre with the -jre


vulnerable to xss attacks

This markdown editor is vulnerable to xss attacks especially the preview feature.

Looks like the above 2 commits prohibit the xss if javascript:alert('xss') is entered in the popup box, however when entering it directly in the editor as below it still vulnerable:
[xss](javascript:alert('xss'))

+1

ikr

Any updates in this?

@toopay any updates?

@arall I havent found a bulletproof solution for this yet.

+1 for this. Is a critical issue.

Any news ?

I made the following solution that already mitigates a lot of XSS attacks.
So if you are using this library and cannot switch to a better one, do the following:
In the file bootstrap-markdown.js on line 575 within the function showPreview: function(), add the following lines:
content = content.replace(/<\/?(script|iframe|object|embed|form)[^>]*>/gi, "");
content = content.replace(/\s*javascript:/gi, "");
content = content.replace(/\s*on\w+="[^"]*"/gi, "");
content = content.replace(/\s*on\w+='[^']*'/gi, "");
content = content.replace(/\s*on\w+=\w+/gi, "");
content = content.replace(/\s*src\s*=\s*"data:[^"]*"/gi, "");
content = content.replace(/\s*src\s*=\s*'data:[^']*'/gi, "");

Below is the exact point in the file where the above code should be inserted, between lines with content = typeof callbackContent and Build preview element.
(...)

// Set the content based on the callback content if string, otherwise parse value from textarea
content = typeof callbackContent == 'string' ? callbackContent : this.parseContent();

// Protection against XSS attacks on preview mode
content = content.replace(/<\/?(script|iframe|object|embed|form)[^>]*>/gi, "");
content = content.replace(/\s*javascript:/gi, "");
content = content.replace(/\s*on\w+="[^"]*"/gi, "");
content = content.replace(/\s*on\w+='[^']*'/gi, "");
content = content.replace(/\s*on\w+=\w+/gi, "");
content = content.replace(/\s*src\s*=\s*"data:[^"]*"/gi, "");
content = content.replace(/\s*src\s*=\s*'data:[^']*'/gi, "");

// Build preview element
replacementContainer.html(content);

(...)

I hope this helps someone after so many years, for those who still use old code in legacy systems.


Upgrade to pac4j v1.8.2

To use the new HttpActionAdapter.

PR: https://github.com/pac4j/play-pac4j/pull/89

The demos are updated as well: https://github.com/pac4j/play-pac4j-java-demo/pull/25 & https://github.com/pac4j/play-pac4j-scala-demo/pull/24


Inconsistent UI in Create New Case dialog

Describe the bug
The are a few issues with the in Create New Case dialog:
Too much padding for Priority Level field:

The Complaint Type field gives a different error message from the other fields:

Steps to reproduce
List any steps to reproduce behavior

Click on Create New Case
Select Priority Incident as the Intake Source
Click on Create and Search

Expected behavior
UI should be consistent, should have the same spacing for all fields as well as the same component used for error messages.

@kjonesthoughtworks to add mockup


Create proposal better UX

In this improvement we seek to

[ ] add a page that asks your for a proposal type (see image below)
[ ] give show the thresholds (e.g. max and min enactment for the selected proposal
[ ] give you an easy way to populate the times (enactment etc)
[ ] improve validation of the submit proposal (if not done already)

See design board

and draft ACs https://github.com/vegaprotocol/specs/blob/62af5e047880327ba39998aed60b786d50030d80/user-interface/1005-PROP-propose.md

In discussion.
Decided for this iteration that the time picker should be less complicated. here is the design for now.


On write precondition failed, heartbeat is not started

@jfunston  Is the fix is to start timer when either status is OK or ConditionFailed() in the following code?
https://github.com/futurewei-cloud/chogori-platform/blob/master/src/k2/module/k23si/client/k23si_client.h#L313
Also what is the benefit of starting heartbeat timer if precondition fails?

Yes that is correct. A condition failed code is not a hard error, the client is free to continue its transaction and eventually commit. The way it currently works is that the TRH is created on the nodepool of the first attempted write, regardless if that write failed or not. The TRH is what tracks the transaction heartbeat so we need to start it even if no write intent was created.