List for Publications whose file versions are all determined but Preferred Version is "None"

Related to #692
Most of the time, if we can’t deposit the version that we got, there’s another version we can deposit (see #719, the "wrong version" bucket). But, sometimes there won’t be any version of the article that we can deposit. For these publications, an admin will set the "preferred_version" to "None". We need to add that as an option for that field.
We don’t want those to show up in the “wrong version” bucket — they should be in a bucket of their own called "Publications for which no version can be deposited". The logic for this list is the same as the "wrong version" bucket except that "preferred_version" is "None".
In this list, an admin should be able to review the item and should be able to send the user an email explaining that no version of the publication can be deposited. This functionality can be very similar to the "wrong version" bucket, except that once we've sent an email to the user we are not waiting on any further action, so the publication(s) we emailed them about should be removed from the list. An admin should be able to send an email about just one publication or a batch of publications from a particular user.
When the publications are removed from the list (when the email is sent successfully), RMD should also:

delete the files that can't be deposited from Activity Insight (if possible)?
update the publication's status in Activity Insight to "Cannot Deposit"
delete the local copies of files that cannot be deposited from RMD and update RMD's associated database records to indicate that the files were not able to be deposited

We'll need to keep some record of the fact that we've sent this email for a given publication in order to know which publications to show in this list, but this record will also indicate that the publication has completely exited this workflow, so it will make sense to include its presence as another filter in the Publication#activity_insight_oa_publication scope and in any appropriate scope(s) on ActivityInsightOAFile so that it doesn't appear in any other lists and so that it's not subject to any more automated processing.

Update Activity Insight and send the email at the same time.

@anaelizabethenriquez when you get the chance, could you add what you'd like in the email please?

Sorry about that! Here it is:
From<EMAIL_ADDRESS>Reply-to<EMAIL_ADDRESS>Subject: Open Access Post-Print Publication Files in Activity Insight
Hello,
We are writing to follow up on the publication file(s) uploaded to your account in Activity Insight in the section titled “Open Access Post-Print Publication files."
When researchers upload files to this section, a team in the Libraries works to make them available to the public via ScholarSphere according to the default terms of the journal's publishing agreement. This process is designed for the “post-print” or “accepted manuscript” version of the article, because most journals allow that version to be shared widely. Some journals prefer that you share the final published version. In rare cases, the journal does not allow you to share either version.
This is the case for the following article(s) for which you (or an Activity Insight Proxy) uploaded files:
[Title1]
[additional titles as needed]
As a result, we have not deposited the file(s). If you believe this is an error, if you would like us enter a waiver of the OA policy for this article, or if you have any questions, please do not hesitate to contact us at<EMAIL_ADDRESS>If you have uploaded other files in Activity Insight, we will process those files and update you in due course. You can view a list of all your publications and their open access statuses on your Manage Profile Publications page.
All the best,
Office of Scholarly Communications and Copyright
Penn State University Libraries
<EMAIL_ADDRESS>

@ajkiessl can I get your opinion on how to execute the email step with the 'Cannot Deposit' export to Activity Insight? Since the plan is to do these simultaneously, here's what I'm thinking: The email controller action will send an email, trigger the export job on all files for the publication, and then update a boolean on publication to indicate that the email has been sent. That boolean will filter the publication out of the workflow moving forward. I don't think there needs to be a boolean on the file indicating it's been exported, but instead if it fails, have the job trigger an error. What do you think? Am I missing anything with that process?

@Smullz622 Yeah I think that sounds good.  We probably want to set the boolean right after the email is sent but before the export job is queued, though.  That way if there's an error with delayed job, then the boolean will still be set and indicate to us that the email was sent.
I agree that we shouldn't need to store a boolean with the file regarding the status update in Activity Insight.  Since the publication will fall out of the workflow, there won't be a way for anyone to accidentally send the emails again, so we don't need a boolean for that.  If the email boolean on the publication is updated, then we know the status in Activity Insight should have been updated (unless there was an error), so we don't need a boolean for that.  Otherwise, I can't think of any other reason why we might need the boolean on the file.

@Smullz622 This is very minor. When testing, I noticed a typo in the email text. Can you add a period after "please do not hesitate to contact us at<EMAIL_ADDRESS>

@Smullz622 This is very minor. When testing, I noticed a typo in the email text. Can you add a period after "please do not hesitate to contact us at<EMAIL_ADDRESS>
No problem!


HiDPI support?

Apparently the original material theme had HiDPI support: https://recordnotfound.com/lightdm-webkit-material-artur9010-79639
Is there a css value or something I can edit so that my eyes don't bleed?

Ok, just realized there is a UI scale option, but then the fonts get out of control, with clipping and whatnot.

I've known about this issue but never got around to fixing it. It's just the text within the text boxes/inputs that doesn't scale right?

The text scales up, but are pushed down making them invisible, and the choiceboxes aren't scaled at all.


SPOI-8728 Json Parser

@ashwinchandrap Could you review this ?

@sandeepdeshmukh @chinmaykolhatkar Could you review this ?

@shubham-pathak22 Can you use the same application to showcase both JSONFormatter and JSONParser. So application might look like this:
JsonDataGenerator -> JSONParser -> JSONFrmatter -> ConsoleOutput.

Incorporated review comments. JsonFormatter is still in PR review stage.
https://github.com/apache/apex-malhar/pull/348

Incorporated review comments.


services definitions on OS X

There are no launchd services for servers such as postgres on macOS, you have to manually start/stop postgres yourself. While it is trivial to create a script/alias to do this or even write the service definition yourself, it would be nice if nix could do it for you.
#5246 was opened to address this but it was abandoned.

I've been working working on a project that tries some of the parts of nixos to darwin. At the moment it's a separate project because I'm not sure yet how to integrate it with the existing nixos modules, but there should be very little difference for the parts that overlap.
Feedback and help are appreciated to make it easier to get started with it.
https://github.com/LnL7/nix-darwin

@copumpkin do you have any thoughts on this?

ping @periklis, he had some thoughts on this, too.

Way months back, when i was doing my first baby steps with nixpkgs, i tried to create a PR for a new output type called "plist" to adress this issue. My assumptions were:

A lot of projects deliver in the first place sane default plists, so use them.
Make the usage of a plist an optional part of the derivation outputs,
e.g. outputs = ["lib", "dev"] ++ stdenv.lib.optional (stdenv.isDarwin) ["plist"];
If the default plist needed modifications, we could use an extra attribute plist =''...'';
Make ouput type and attr plist only available in the stenv.darwin.
Print out instructions for launchctl load /nix/store/long-hash-name-version-plist/org.company.name.plist for the user after installPhase.

However, i failed to produce the PR at that time, because of lack of knowledge of the internals of stdenv.darwin. I got lost in the recursion of stageFun calls at that time, when i tried to inject just a custom build-plist.sh  to extend the defaultNativeBuildInputs of the initial stdenv/generic/default.nix.
In summary, this just an abstraction of the approach currently found in packages like xquatz, that produce plist files in the derivation's attrset and reference to the contents during the phases.

I might be bias, but I'm not sure how useful a plist output is in practice since there's no way to customise it. Using the module system makes more sense to me and has some nice advantages like type checking and nice descriptions for all of the launchd options.

@LnL7 Sure you are right, but modules are the heavy-lifting way. I could not foresee that nix-darwin would be possible at that moment. However, i having a plist attribute which anybody can override would do the same all the launchd options, but this is the dirty way.

Are there any updates to this issue, please?

Going to close as it has been a long time and I'm not sure if this is relevant anymore.


error on install Unknown module

Hello
first, thank you for your wonderful work!
I got this error on my gliderlabs/alpine:3.3 image
log:
$ pm2 install pm2-slack
[PM2][Module] Installing module pm2-slack
[PM2][Module] Module already installed. Updating.
[PM2][Module] Processing...
............/root/.pm2
`--<EMAIL_ADDRESS>
[PM2][Module][ERROR] Unknown module

What version of pm2 are you using? Have you tried uninstalling the pm2-slack module first and reinstalling? Have you tried updating pm2?

On Apr 28, 2016, at 11:39 PM, Artur Dudnik<EMAIL_ADDRESS>wrote:
Hello
first, thank you for your wonderful work!
I got this error on my gliderlabs/alpine:3.3 image
log:
$ pm2 install pm2-slack
[PM2][Module] Installing module pm2-slack
[PM2][Module] Module already installed. Updating.
[PM2][Module] Processing...
............/root/.pm2
`--<EMAIL_ADDRESS>[PM2][Module][ERROR] Unknown module
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub

Matthew, sorry for late answer.
bash-4.3# pm2 -v
1.1.3

issue gone when I downgrade pm2 to version 1.1.2

Strange, not much changed between those versions.
https://github.com/Unitech/pm2/blob/master/CHANGELOG.md
I'll take at look into it on Monday. Thanks for all the information.

On Apr 30, 2016, at 11:12 AM, Artur Dudnik<EMAIL_ADDRESS>wrote:
issue gone when I downgrade pm2 to version 1.1.2
—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub

Now I think it's not a pm2 and pm2-slack problem. I'm sure something broken in npm or node package after success installation.
Sorry for bother.

yes, re-install npm and node helps.

Awesome. Thanks for letting me know. I will consider this issue closed.


Crash when placing Industrial Foregoing Machines with Sponge installed

Placing the machine instantly crashes the game, reason is in the log below tested with:
industrialforegoing-1.12-1.3-58.jar
spongeforge-1.12.1-2480-7.0.0-BETA-2643.jar
tesla-core-lib-1.12-1.0.9.jar
Forgelin-1.5.1.jar
https://gist.github.com/phit/aa5507126a0f4bfdd889042458fa71b8#file-gistfile1-txt-L4707

nvm see b4876610a93340700d30edf22262c5a490b3067f


AWS environment variables are not honored

Describe the bug
AWS CLI and AWS SDK honor AWS environment variables, while steampipe does not and displays the error
ERROR: rpc error: code = Unknown desc = operation error Elastic Load Balancing v2: DescribeLoadBalancers, https response error StatusCode: 403, RequestID: 9c80b7d8-6cc7-4d20-ae5d-7955fcde037a, api error AccessDenied: User: arn:aws:sts::1234:assumed-role/foo/i-xxx is not authorized to perform: elasticloadbalancing:DescribeLoadBalancers because no identity-based policy allows the elasticloadbalancing:DescribeLoadBalancers action (SQLSTATE HV000)

Steampipe version (steampipe -v)
$ steampipe --version
Steampipe v0.20.2

Plugin version (steampipe plugin list)
$ steampipe plugin list
+---------------------------------------------+---------+-------------+
| Installed Plugin                            | Version | Connections |
+---------------------------------------------+---------+-------------+
|<EMAIL_ADDRESS>| 0.103.0 | aws         |
+---------------------------------------------+---------+-------------+

To reproduce

Expose AWS environment variables$ env | grep -o '^AWS.*='
AWS_DEFAULT_REGION=
AWS_REGION=
AWS_ROLE_ARN=
AWS_WEB_IDENTITY_TOKEN_FILE=
AWS_STS_REGIONAL_ENDPOINTS=

Verify AWS environment variables are working, has ReadOnlyAccess role policy and there are no AWS CLI credential file$ ls -x1R ~/.aws/
/root/.aws/:
cli

/root/.aws/cli:
cache

$ aws --version
aws-cli/2.11.21 Python/3.11.3 Linux/5.4.204-113.362.amzn2.x86_64 exe/x86_64.debian.11 prompt/off

$ aws iam list-attached-role-policies --role-name $(aws sts get-caller-identity --query Arn --output text | rev | cut -d / -f 2 | rev)
{
    "AttachedPolicies": [
        {
            "PolicyName": "ReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/ReadOnlyAccess"
        }
    ]
}

Install steampipe aws plugin
Start steampipe dashboard
Open one of the AWS dashboards, e.g. /aws_insights.dashboard.ec2_application_load_balancer_detail

Expected behavior
AWS plugin should honor AWS environment variables.
Additional context

AWS environment variables docs for AWS_ROLE_ARN states:

If defined, this environment variable overrides the value for the profile setting role_arn. You can't specify a role session name as a command line parameter.

https://hub.steampipe.io/plugins/turbot/aws#configuring-aws-credentials

If there is no bug, then any guidance on how to make AWS plugin to honor AWS environment variables will be appreciated.

Hi @foolioo , can you please let us know which AWS environment variables specifically aren't working for you? Is it just AWS_ROLE_ARN, or are there others as well?
Are you running from an EC2 instance, or another environment, like a local laptop?
Also, if you run steampipe query using the same AWS Steampipe connections you're using with that load balance detail page, are you able to run queries like select name from aws_iam_role, select instance_id from aws_ec2_instance, and select name from aws_s3_bucket?

Thanks @foolioo for the additional info, we'll look to try and reproduce from our end using the environment variables you listed above and let you know what we find.

Hi @foolioo , no not yet, we're still investigating. We'll share more info once we have it.

May not resolve issue but could you maybe try setting the env var AWS_SDK_LOAD_CONFIG=true
I did attempt a basic example of testing environment variables for authentication (access/secret key combination) & that worked out fine.
❯ source .tempenv
❯ ls -x1R ~/.aws/
❯ ll -a ~/.aws
total 0
drwxr-xr-x   2 graza  staff    64B 31 May 10:28 .
drwxr-x---+ 42 graza  staff   1.3K 31 May 10:46 ..
❯ aws --version
aws-cli/2.11.23 Python/3.11.3 Darwin/22.5.0 exe/x86_64 prompt/off
❯ env | grep -o '^AWS.*='
AWS_SDK_LOAD_CONFIG=
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
❯ steampipe query "select count(*) from aws_s3_bucket"
+-------+
| count |
+-------+
| 121   |
+-------+

Also would it be possible to test if writing the env vars to relevant config/credentials files works successfully with Steampipe?

@foolioo I think you should remove this from your spc file:
profile = "default"

since you don’t have any aws config files defined then I assume you do not have a default profile to reference?

Good catch, I didn't set profile in my aws.spc
❯ cat ~/.steampipe/config/aws.spc
connection "aws" {
  plugin = "aws"
  regions = ["eu-*"]
}

When adding the line back in I do indeed get a (different) but understandable error.
❯ vi ~/.steampipe/config/aws.spc
❯ cat ~/.steampipe/config/aws.spc
connection "aws" {
  plugin = "aws"
  regions = ["eu-*"]
  profile = "default"
}

❯ steampipe query "select count(*) from aws_s3_bucket"

Error: operation error S3: ListBuckets, exceeded maximum number of attempts, 9, failed to sign request: failed to retrieve credentials: failed to refresh cached credentials, no EC2 IMDS role found, operation error ec2imds: GetMetadata, exceeded maximum number of attempts, 3, request send failed, Get "http://<IP_ADDRESS>/latest/meta-data/iam/security-credentials/": dial tcp <IP_ADDRESS>:80: connect: no route to host (SQLSTATE HV000)

+-------+
| count |
+-------+
+-------+

Hey @foolioo - can you check/confirm that removing the profile from your .spc file allowed you to successfully use the environment variables as expected?


Move label drawTime default to line annotation defaults

Fix #625
Not sure why the label drawTime was present in the annotations node. Maybe there are other reasons.

The plugin options act as defaults for all annotation types.
https://github.com/chartjs/chartjs-plugin-annotation/blob/2167375ac06a04b3ddf2b26ea0e9234f024ae4f0/src/types/index.js#L27-L39
I think it now resolves options.plugins.annotation.label and finds a defined (null) drawTime there.
https://codepen.io/kurkle/pen/PoJXboE

Not sure why the label drawTime was present in the annotations node. Maybe there are other reasons.

It was put there in #345

I think it now resolves options.plugins.annotation.label and finds a defined (null) drawTime there.

I'll have a look. Let me switch this PR in draft.

I had a look and I have to admit my lack of knowledge about fallback/proxies.
I was expecting that the fallback will ignore the name of the annotation because to the options are at another level.
plugins.annotation.annotations.myId = myOptions

I'm expecting that the fallback will act on myOptions (and and not myId.myOptions) to plugins.annotation.

I'm expecting that the fallback will act on myOptions (and and not myId.myOptions) to plugins.annotation.

options.annotation.annotations.label
options.annotation.annotations.label.label (includes defaults, but it should not)
options.annotation.label (this does not exist, but it resolves to defaults. it should not)
defaults.elements.lineAnnotation
lineAnnotation descriptors
options.annotation
defaults.plugins.annotation
annotation plugin descriptor

I think the actual issue is in beforeUpdate, we are storing a resolver in the state, when we should only store the options.
Lets keep this open, but I'll try to create a fix this weekend.

THANK YOU !!! I'm looking forward for that in order to understand better.

options.annotation.annotations.label
defaults.elements.lineAnnotation.label (this should not be here, its a point annotation)
defaults.plugins.annotation.label (this is the culprit, _fallback = 'plugins.annotation' and the current key 'label' is looked in there.
defaults.elements.pointAnnotation
lineAnnotation descriptors
options.annotation
defaults.plugins.annotation
annotation plugin descriptor

@kurkle I was thinking about this fallback and your closed PR #601.
But, and maybe it's not a good idea, if we will move all common options (and their defaults) at annotation plugin descriptor?
Shouldn't we reach the goal to have common options (and defaults) only in a place?
If I understood well, we should anyway to maintain the keys (set to undefined) in the defaults options of each annotation.


Reload all or a specific template in production without app restart.

In production mode, one has to restart the whole app to reload templates, which seems to be an overkill for minor adjustments. Here is a link to the topic at mailinglist: https://groups.google.com/forum/?fromgroups=#!topic/liftweb/oqFNzoA_vs4

In fact, I think this should just be a matter of changing the template cache defaulting in production mode in HTTPProvider to happen pre-boot instead of post-boot. We'd need to confirm that pre-boot gives LiftRules a chance to initialize to its default Empty before we check it and set it to Full by default in production mode.
Another option would be to move that defaulting directly into the LiftRules initialization of templateCache, as we do similar mode-based toggling in several places in LiftRules.
Even without this, LiftRules.templateCache can be set to a subclass of InMemoryCache that allows for further customization, and the above defaulting of the cache won't take place in that case. (Even as it stands, the default cache allows for deletions to occur.)


Configuration Info For Catalogue Server Setup

Hi Team,
I have setup Catalogue server(3.5.0) instance on my local system by following Installation Doc.
And setup for elk done by following Installation Doc.
When i am trying with openapi()swagger) url it is working fine but while i am trying
Get http://localhost:8083/cat/iudx/v1/item
Then getting error "Resource not found"
So my question is do i need to perform some other backend activity so that my catlogue server start to respond properly.
I am suspecting may be we need to create some entries in db before start to use. Because after following elk setup guid in elastic there is just user and role created regarding Catalogue server nothing else.
Please correct me if i am on wrong path.
Thanks
Deepak Kumar

Hi Team,
I hope you guys might be busy but could you please reply on my above query it is affecting my timeline.
Thanks
Deepak Kumar

Hi Deepak kumar
thanks for raising issue.
The correct query is
http://localhost;8083/iudx/cat/v1/item?id=<cat-id>

Please see apis documentation /apis or at example of https://api.catalogue.iudx.org.in/apis#tag/Entity/operation/getItem
Having said, you will have to do two things to get any results in above query:

Cat index creation at elasticsearch
A index to be created in elastic with mapping specified at https://github.com/datakaveri/iudx-catalogue-server/blob/3.5.0/configs/default-mappings.json.

Create index in elasticsearch in  two ways:
1.1. You can create index through kibana (accessible at https:// if deployed behind centralised nginx in swarm or need to expose the port  locally through custom deployment, then it will be available at http://localhost:5601).  Login as kibana admin user . Create a static cat index in elasticsearch through kibana .  Through curl, you need to go inside the elastic container, using docker exec -it <cat-container-name> bash  and then execute following curl command.
  curl -XPUT -u "<kibana-admin-username>:<kibana-admin-password>" "http://localhost:9200/cat-exp" -H 'Content-Type: application/json' -d '{"settings":{"index.number_of_replicas":"1","index.unassigned.node_left.delayed_timeout":"10m","number_of_shards":1,"index.mapping.coerce":false},"mappings":{"dynamic":false,"properties":{"_summary":{"type":"text"},"@context":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"id":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"tags":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":2000}}},"type":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"instance":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"itemStatus":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"label":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"iudxResourceAPIs":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"accessPolicy":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"authControlLevel":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"dataDescriptor":{"type":"flattened"},"description":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"deviceInfo":{"type":"flattened"},"location":{"properties":{"address":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"geometry":{"type":"geo_shape"},"type":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"providerOrg":{"type":"flattened"},"accessObjectInfo":{"type":"flattened"},"authServerInfo":{"type":"flattened"},"resourceServerOrg":{"type":"flattened"},"resourceServerStreamingAccessURL":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"resourceServerHTTPAccessURL":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"resourceGroup":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"resourceType":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"provider":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"resourceServer":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"_word_vector":{"type":"dense_vector","dims":100}}}}'

Need to register  Metadata About  Resources on catalogue server (i.e. on board cat item for the resource )

After successful execution of both steps , you can query http://localhost;8083/iudx/cat/v1/item?id=<cat-id> with the above created <cat-id> . You will get successful response.
Including @rraks of IUDX team. Please add if anything more is needed
NOTE

Please deploy all components from 3.5.0 branch of deployment repo. As 3.5.0 rs, cat, auth is tested and will work properly only with backend components also deployed from 3.5.0 branch of deployment repo. If not, you might face some issues.
There will be detailed guide including these things shortly,

Hope this was useful. Let me know if you need anymore help,
Thanks and regards
Abhilash V

Hi @abhi4578,
Thanks for your reply, but i followed same steps before your reply and it is working fine.
Further i tried with Create item api to Upload metadata about my resource server it was working fine.
Further i tried with Create Item API to register Resource Group metadata with below payload -
{
"@context": "https://voc.iudx.org.in/",
"type": [
"iudx:ResourceGroup"
],
"description": "Gfiware of this resource group",
"name": "gfiwareresourcegroup",
"tags": [
"Gfiware", "echarge", "resourcegroup", "gfiwareresourcegroup"
],
"provider": "gmail.com/4963c4b2286fd33f9544d790f03757352f88a82b",
"resourceServer": "gmail.com/4963c4b2286fd33f9544d790f03757352f88a82b/localiudxresourceserver",
"resourceAuthControlLevel": "INDIVIDUAL",
"resourceType": "messageStream",
"iudxResourceAPIs": [
"attribute",
"temporal"
]
}
then i was getting error as response with message - Validation failed -  Link Validation Failed
SO further i debug and found it is looking for corresponding provider  in elastic with query -
{"_source": ["id"],"query": {"term": {"id.keyword": "gmail.com/4963c4b2286fd33f9544d790f03757352f88a82b"}}}
I tried to create provider with create item api but not able to understand how i will get access token so that i can create provider in catalogue server. As i found Auth Server's Create Token api does not support "provider" as value for itemType.
Can you please help me for same?
Thanks
Deepak Kumar

Hi Team,
I hope you guys might be busy but could you please reply on my above query it is affecting my timeline.
Thanks
Deepak Kumar

Dear @pachori91
Thanks for writing to us. We would like to understand your organization and use case. Can you please let us know a bit about it? This will help us to guide you better.
Regards
Vasanth

Hi @pachori91
The request you need to get a "provider" token which will allow you to insert Provider item into the catalogue is ->
curl --location -g --request POST '{{AUTH_ENDPOINT}}/auth/v1/token'
--header 'Authorization: Bearer e..Q'
--header 'Content-Type: application/json'
--data-raw '{
    "itemId": "//catalogue/crud",
    "itemType": "resource",
    "role": "provider"
}'
Please note -
itemId = //catalogue/crud

Hi @swaminathanvasanth,
I am from NECI and we are checking the possibility to ingest data from our local platform to IUDX. Just doing a POC. Same is already shared with Abhay & Suresh on mail.
As it is opensource, does it really matters to know the organization name before answering my queries.
Thanks Deepak Kumar

Thanks for the response @pachori91
The reason to ask the organization name was to understand if you are in the consortium or in the partners list.
Though the code is open source (licensed under MIT), we are working on a support model which will be offered as a service/business. We are also constantly keeping our platform updated and our next release is due by 30th September.
Our team will help you out on getting things clarified. Due to release deadlines, please expect some delay in response.
For more queries, do touch base with me via email [ vasanth (dot) rajaraman (at) iudx (dot) org (dot) in]
Regards,
Vasanth

Hello Vasanth,
Thanks for the reply.
we are seeking your cooperation.
I feel the problem is with the complex configuration and their related tutorials, both are not sync or difficult to understand. that's why we have several queries.
I can understand the release pressure, we also have the same pressure. But it would be great to have your support on time before its too late for us or for anyone who want to integrate with IUDX.
Thanks for your cooperation.
Best Regards
Naveen Singh Bisht

@naveennec @pachori91
We're happy to provide dedicated support through a video call.
Hope you were able to resolve the issue.

@rraks
Thank you very much for your response and support.
we are able to setup catalogue server on our local, just we need help in resource server setup, which is almost done but still not complete.
if you can help in setting up the resource server then we can have a call on Monday(12 sept) as per your suitable time.

Hi @rraks
One more query regarding your comment.
As we need to register Provider and Resource server to the catalogue if i am using Local IUDX Setup,
But in the case of Public IUDX Plateform if i register my self as Provider and Iudx Admin provides approval to me-
Then do i need to upload metadata about Provider and Resource Server to The catalogue Server?
Or IUDX Admin will do same for me?
If IUDX admin will upload metadata for me then how can i know ID of Resource Server so that i can register adaptor for same?
please correct me if am wrong here.
Thanks
Deepak Kumar

Hi Team,
I hope you guys might be busy but could you please reply on my above  query.
Thanks
Deepak Kumar

did you find some time to reply on my query?

Hi @pachori91
We often miss github notifications.
In case you don't receive a response, please mail me on<EMAIL_ADDRESS>Regarding your above query -
The idea is that provider themselves onboard the provider item onto the catalogue if possible (Either through apis or a UI based flow which is work in progress). Unfortunately, registering yourself as provider in the portal will not set you up with provider metadata on catalogue.
A resource server metadata item should be uploaded to the catalogue by the resource server admin by obtaining a token from the auth server using their own credentials.
As an alternative, a provider/resourceserveradmin could also delegate such responsibilities to someone having an onboarder role.
All of these flows are created keeping a UI based flow in mind. The UI work is still in progress.
I'm looping in @m-arun who can help you out on the delegation flows.
His email is<EMAIL_ADDRESS>


[WIP] Use Finite State Machines to manage instance/provisioning lifecycle

The current group plugin suffers from a number of problems like #345, #409, #423 and many of these problems are related to the tracking of states of instances as they change due to external signals like instance creation, health check, request to update, etc.  A lot of this is better managed via fsm - finite state machines with some additional requirements:

state transitions happen via signals received into the system
a state can have a TTL and when expired, another signal is triggered.  This is useful for implementing waits on asynchronous, long-running provisioning tasks; also cool-downs can be implemented this way.
we should detect flapping that is oscillation between states (e.g. healthy->unhealthy->healthy) and when a limit is reached, raise a signal.

Very roughly, an example state machine might look like this:
	const (
		signal_specified Signal = iota
		signal_create
		signal_found
		signal_healthy
		signal_unhealthy
		signal_startover
		signal_stop

		state_specified Index = iota
		state_creating
		state_up
		state_running
		state_down
		state_decommissioned
	)

	createInstance := func(Instance) {
		t.Log("creating instance")
	}
	deleteInstance := func(Instance) {
		t.Log("delete instance")
	}
	cleanup := func(Instance) {
		t.Log("cleanup")
	}
	recordFlapping := func(Instance) {
		t.Log("flap is if this happens more than multiples of 2 calls")
	}
	sendAlert := func(Instance) {
		t.Log("alert")
	}

	fsm, err := Define(
		State{
			Index: state_specified,
			Transitions: map[Signal]Index{
				signal_create:    state_creating,
				signal_found:     state_up,
				signal_healthy:   state_running,
				signal_unhealthy: state_down,
			},
			Actions: map[Signal]Action{
				signal_create: createInstance,
			},
			TTL: Expiry{1000, signal_create},
		},
		State{
			Index: state_creating,
			Transitions: map[Signal]Index{
				signal_found:     state_up,
				signal_startover: state_specified,
			},
			Actions: map[Signal]Action{
				signal_startover: cleanup,
			},
			TTL: Expiry{1000, signal_startover},
		},
		State{
			Index: state_up,
			Transitions: map[Signal]Index{
				signal_healthy:   state_running,
				signal_unhealthy: state_down,
			},
			Actions: map[Signal]Action{
				signal_unhealthy: recordFlapping, // note flapping between up and down
			},
		},
		State{
			Index: state_down,
			Transitions: map[Signal]Index{
				signal_startover: state_specified,
				signal_healthy:   state_running,
			},
			Actions: map[Signal]Action{
				signal_startover: cleanup,
				signal_healthy:   recordFlapping, // note flapping between up and down
			},
			TTL: Expiry{10, signal_startover},
		},
		State{
			Index: state_running,
			Transitions: map[Signal]Index{
				signal_healthy:   state_running,
				signal_unhealthy: state_down, // do we want threshold e.g. more than N signals?
				signal_stop:      state_decommissioned,
			},
			Actions: map[Signal]Action{
				signal_unhealthy: sendAlert,
				signal_stop:      deleteInstance,
			},
		},
		State{
			Index: state_decommissioned,
		},
	)

	require.NoError(t, err)

	// set is a collection of fsm intances that follow the same rules.
	set := NewSet(fsm.CheckFlappingMust([]Flap{
		{States: [2]Index{state_running, state_down}, Count: 10},
	}), time.Tick(1*time.Second))

There will be reconciliation loop that handles the state transitions of all the instances as responding to events from channels.
This is very much a Work In Progress.  A lot of the APIs and implementations will change as needed.   Hopefully this implementation will fix a lot of the issues associated with the current group plugin.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "fsm1" git@github.com:chungers/infrakit.git somewhere
$ cd somewhere
$ git rebase -i HEAD~842353867952
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.


fixed deletion endpoint error codes

202 if only -key or -value error for schema deletion. 500 if -key and -value error using /v2/topics/schemas/... endpoint

Codecov Report

Merging #469 into master will decrease coverage by 0.05%.
The diff coverage is 84.00%.

@@            Coverage Diff             @@
##           master     #469      +/-   ##
==========================================
- Coverage   89.36%   89.30%   -0.06%
==========================================
  Files         121      121
  Lines        2660     2666       +6
  Branches       81       83       +2
==========================================
+ Hits         2377     2381       +4
- Misses        283      285       +2

Impacted Files
Coverage Δ

...cala/hydra.ingest/http/TopicDeletionEndpoint.scala
88.88% <81.81%> (-2.34%)
:arrow_down:

...ala/hydra/kafka/services/StreamsManagerActor.scala
93.75% <100.00%> (ø)

...scala/hydra/kafka/ingestors/KafkaTopicsActor.scala
96.42% <0.00%> (-3.58%)
:arrow_down:

...cala/hydra.ingest/services/IngestorRegistrar.scala
88.88% <0.00%> (+11.11%)
:arrow_up:

Continue to review full report at Codecov.

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


[FR] Multiple Addresses for Supplier or Customer

Please verify that this feature request has NOT been suggested before.

[X] I checked and didn't find a similar feature request

Problem statement
Would be nice to have multiple addresses allowed for a single supplier or customer.
For example -- I am building POs via the report functionality -- but I need to put:
SHIP TO:
BILL TO:
Billing and Shipping addresses would probably catch most of the issues for me... as if there are multiple places within an organization (i.e. GM California vs GM Michigan) -- it's just as easy to have separate customers for those where the shipping addresses are different but the billing addresses aren't....
Suggested solution
Just allow multiple addresses
Describe alternatives you've considered
Considered creating custom attributes and then importing them to reports via the mixin -- but haven't tried it yet.
Examples of other systems
No response
Do you want to develop this?

[ ] I want to develop this.

Addresses are currently worked on in https://github.com/inventree/InvenTree/pull/4732; maybe this can be a follow-up. The changes are rather easy additions and a small migration - I would encourage you to submit a PR if you need this somewhat timely.

Thanks -- honestly -- I'm such a noob that I'm not sure I could even
accomplish that PR!!  But I'll take a look at the source to see if I can
figure it out.
Not urgent -- just would be nice for future as I have some very picky
customers.
On Sun, May 7, 2023 at 2:46 PM Matthias Mair @.***>
wrote:

Addresses are currently worked on in #4732
https://github.com/inventree/InvenTree/pull/4732; maybe this can be a
follow-up. The changes are rather easy additions and a small migration - I
would encourage you to submit a PR if you need this somewhat timely.
—
Reply to this email directly, view it on GitHub
https://github.com/inventree/InvenTree/issues/4788#issuecomment-1537547141,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABRO25YBU2FW5BU3URR4QPTXFAJ2BANCNFSM6AAAAAAXZAXG5Q
.
You are receiving this because you authored the thread.Message ID:
@.***>

@derekwolfson was this covered enough by the last release?

Closing due to lack of activity, after recent changes have implemented this feature


Merge remote-tracking branch 'origin/release/3.0-preview3' => 'master'

no-op merge because the bot wasn't doing its work

Bump reviewers…


Automation for other games

There are many games similar to Puzzle & Dragons. The automation should also work for them with some minor tweaks. Tower of Saviours is probably the one I will try.

The automation works with Tower of Saviours. As long as, the board can be recognised by colours. This should work for all games.


⚠ Mastodon server has degraded performance

In 8bbdacc, Mastodon server (https://so.fyle.uk/) experienced degraded performance:

HTTP code: 200
Response time: 5968 ms

Resolved: Mastodon server performance has improved in 6518766.


Replace npm with yarn

Codecov Report

Merging #45 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #45   +/-   ##
=======================================
  Coverage   86.69%   86.69%
=======================================
  Files          10       10
  Lines         203      203
  Branches       30       30
=======================================
  Hits          176      176
  Misses         27       27

Continue to review full report at Codecov.

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


xsdata == 24.4 causing issues with to_xml downstream

As of 11h ago xsdata has a new version (24.4) and to_xml breaks spectacularly in omero-cli-transfer now. I can confirm that the same exact build ran 2 days ago with no problem (see both attempts here if it helps!). As far as I can see xsdata version is the only change. Full error stack below if it helps, from the to_xml call onwards.
 error stack
src/generate_xml.py:1000: in populate_xml
    print(to_xml(ome), file=fp)
/tmp/miniconda/envs/omero/lib/python3.9/site-packages/ome_types/_conversion.py:316: in to_xml
    xml = serializer.render(obj, ns_map=ns_map)
/tmp/miniconda/envs/omero/lib/python3.9/site-packages/xsdata/formats/dataclass/serializers/xml.py:42: in render
    self.write(output, obj, ns_map)
/tmp/miniconda/envs/omero/lib/python3.9/site-packages/xsdata/formats/dataclass/serializers/xml.py:59: in write
    handler.write(events)
/tmp/miniconda/envs/omero/lib/python3.9/site-packages/xsdata/formats/dataclass/serializers/mixins.py:138: in write
    for name, *args in events:
/tmp/miniconda/envs/omero/lib/python3.9/site-packages/xsdata/formats/dataclass/serializers/mixins.py:374: in generate
    yield from self.convert_dataclass(obj, qname=qname, xsi_type=xsi_type)
/tmp/miniconda/envs/omero/lib/python3.9/site-packages/xsdata/formats/dataclass/serializers/mixins.py:419: in convert_dataclass
    yield from self.convert_value(value, var, namespace)
/tmp/miniconda/envs/omero/lib/python3.9/site-packages/xsdata/formats/dataclass/serializers/mixins.py:489: in convert_value
    yield from self.convert_list(value, var, namespace)
/tmp/miniconda/envs/omero/lib/python3.9/site-packages/xsdata/formats/dataclass/serializers/mixins.py:510: in convert_list
    yield from self.convert_value(value, var, namespace)
/tmp/miniconda/envs/omero/lib/python3.9/site-packages/xsdata/formats/dataclass/serializers/mixins.py:491: in convert_value
    yield from self.convert_any_type(value, var, namespace)
/tmp/miniconda/envs/omero/lib/python3.9/site-packages/xsdata/formats/dataclass/serializers/mixins.py:569: in convert_any_type
    yield from self.convert_xsi_type(value, var, namespace)
/tmp/miniconda/envs/omero/lib/python3.9/site-packages/xsdata/formats/dataclass/serializers/mixins.py:452: in convert_xsi_type
    yield from self.convert_dataclass(
/tmp/miniconda/envs/omero/lib/python3.9/site-packages/xsdata/formats/dataclass/serializers/mixins.py:410: in convert_dataclass
    for key, value in self.next_attribute(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

cls = <class 'xsdata_pydantic_basemodel.bindings.XmlSerializer'>
obj = Plate(
   id='Plate:3',
   name='Plate Name 0',
   description='Plate 0 of 2',
   wells=[<1 field_type>],
   annotation_refs=[{'id': 'Annotation:17148068931407003905'}, {'id': 'Annotation:17148068931407003910'}],
)
meta = XmlMeta(clazz=<class 'ome_types._autogenerated.ome_2016_06.plate.Plate'>, qname='{http://www.openmicroscopy.org/Schema...)}, any_attributes=[], wrappers={}, namespace='http://www.openmicroscopy.org/Schemas/OME/2016-06', mixed_content=False)
nillable = False, xsi_type = None, ignore_optionals = False
ignore_unset = False, attribute_sort_key = None

    @classmethod
    def next_attribute(
        cls,
        obj: BaseModel,
        meta: XmlMeta,
        nillable: bool,
        xsi_type: str | None,
        ignore_optionals: bool,
        ignore_unset: bool = False,
        attribute_sort_key: Callable | None = None,
    ) -> Iterator[tuple[str, Any]]:
        """
        Return the attribute variables with their object values if set and not
        empty iterables.

        :param obj: Input object
        :param meta: Object metadata
        :param nillable: Is model nillable
        :param xsi_type: The true xsi:type of the object
        :param ignore_optionals: Skip optional attributes with default
            value
        :return:
        """

        set_fields = obj.model_fields_set if ignore_unset else set()
        vars_ = meta.get_attribute_vars()
        if attribute_sort_key is not None:
            vars_ = sorted(meta.get_attribute_vars(), key=attribute_sort_key)

        # ^^^ new

        for var in vars_:
            if var.is_attribute:
                value = getattr(obj, var.name)
                if (
                    value is None
                    or (collections.is_array(value) and not value)
                    or (ignore_optionals and var.is_optional(value))
                    or (ignore_unset and var.name not in set_fields)  # new
                ):
                    continue
>               yield var.qname, cls.encode(value, var)
E               AttributeError: type object 'XmlSerializer' has no attribute 'encode'

/tmp/miniconda/envs/omero/lib/python3.9/site-packages/xsdata_pydantic_basemodel/bindings.py:144: AttributeError

Thanks @erickmartins, yeah I just started seeing the errors pop up in my ci cron jobs this morning.  I'll get on it soon, but am away teaching a course so things may be a bit slow. Xsdata has been changing a lot recently, I'm trying not to part hard upper pins, but may just do that until things settle down

absolutely! just wanted to make sure to flag it and provide as much info as I could.

i just pushed a v0.5.1.post1 to pypi that pins to <24.4 for now

Thanks, @tlambert03. I can confirm that mamba install -c conda-forge 'xsdata<24.4'ing, solved the problem below. (24.3.1 is what got installed)
xsdata error
  File "/Users/jamoore/opt/ome_types_ld/second-attempt/generated/__init__.py", line 1, in <module>
    from generated.ome_2016_06 import (
  File "/Users/jamoore/opt/ome_types_ld/second-attempt/generated/ome_2016_06.py", line 573, in <module>
    class TiffData(BaseModel):
  File "/Users/jamoore/opt/ome_types_ld/second-attempt/generated/ome_2016_06.py", line 653, in TiffData
    class Uuid(BaseModel):
  File "/Users/jamoore/opt/ome_types_ld/second-attempt/generated/ome_2016_06.py", line 666, in Uuid
    value: str = Field(
                 ^^^^^^
  File "/Users/jamoore/micromamba/envs/ome-types2/lib/python3.12/site-packages/pydantic/fields.py", line 751, in Field
    raise PydanticUserError('`regex` is removed. use `pattern` instead', code='removed-kwargs')
pydantic.errors.PydanticUserError: `regex` is removed. use `pattern` instead

@joshmoore, just to check, were you installing ome-types from conda?  I did fix it on pypi (https://pypi.org/project/ome-types/) ... but need to update the feedstock still

will fix and merge https://github.com/conda-forge/ome-types-feedstock/pull/20 today

@tlambert03: the installs were with conda (micromamba) but even manual downgrades throw. Just not during $ xsdata but during import generated.

does the new install from conda work fine?

Unfortuantely no.

i'm sorry @joshmoore, I wasn't paying close enough attention to your error here.  I assumed it was the same as @erickmartins just for conda.  I see now that you're generating your own bindings to the xsd, and not using ome-types... so this is more about the --output pydantic-basemodel flag in xsdata generate and compatibility with various versions of pydantic.
Note that in ome-types, I use pydantic-compat for broader compatibility with all versions of pydantic.  So, if you are generating your own bindings using xsdata generate you'll likely need to do a lot more work (see, for example all the stuff in the ome_autogen folder here).  If you just want to move past this error, you can use
from pydantic_compat import BaseModel, Field

at the top of your ome_2016_06.py file

Thanks, @tlambert03! And no worries. I'm slightly misusing the ticket anyway :wink:


unexport Must()

fix #6

Didn't see, please open the pull request again against the default branch (develop)


Update COMMITTERS.csv

Adding Ana Echeverri as a COMMITTER to the COMMITTER.csv file.
Signed-off-by: Andre de Waal<EMAIL_ADDRESS>

@GoutamChakraborty and @procjim Can you add your approval and I can then merge.


Compare single license publish to all licenses in the current repo

When publishing a single file, there is not a comparison against the other files in the repo.  An additional check should be added.  If there are additional files in the license-list-xml repo, they could be compiled and compared. This, however, would be a performance issue.
Another possibility is to compare against the existing license list.  Matches to the same license ID's should be ignored.

Hi Gary -- I don't know if this helps, but for my local tests during development I've been using the script that Kyle added directly to the license-list-XML repo a while back:
https://github.com/spdx/license-list-XML/blob/master/test-one-license
which brute-forces things by renaming all files from "whatever.xml" to "whatever.xml.skip", except the one that is being tested.
Given that, I'm kind of okay with the CI tests doing the full set of tests on PR submission / merge, particularly if that's needed to do the "compare against other licenses" check. The script linked above is useful for doing the local development of templates.

@swinslow Thanks for pointing this out, I never noticed the script.
If you don't mind downloading and running a Java application, there is even a faster and more straightforward way of testing a single file:

Download the licenseListPublisher
Run the command java -jar licenseListPublisher-2.1.23-jar-with-dependencies.jar LicenseRDFAGenerator src/LICENSESOURCE.xml TEMPOUTPUTDIR v4.0 22-Feb-2021 test/simpleTestForGenerator

This assumes your running the command from the root of the License-List-XML repo.  Replace LICENSESOURCE with the license ID you want to run and replace TEMPOUTPUTDIR with a valid existing directory.

Resolved with PR #96


[ai-form-recognizer] Handle Selection Mark Element References

This fixes a bug that was identified through a Stackoverflow thread. We were not properly handling this type of element reference so I reworked the RegExp pattern we use to destructure these references.
I also updated the CHANGELOG for next week's release.

/azp run js - ai-form-recognizer - tests

/azp run js - ai-form-recognizer - tests


End user testing tutorial

A couple comments for the tutorial for installing python and ASReview. So the tutorial is more clear for people that have never used Python.

I red your feedback and I made some changes to the pull request!

Congratz on your first contribution!


mypy without skipping imports

This is based on PR #2168.
We get little benefit at the moment from mypy, because we skip imports when we run it. This is an experiment to see what's needed to make mypy run with imports and without errors on mimtmproxy/master.py. See commits for more information.
From here, validation of the complete project is not that far away.

The GitHub diff is borked, trying to fix this now.

Ok, the annotations have been relaxed where you recommended. I wonder if the strategy here might not be to err on the side of strictness until the mypy checker tells us otherwise (as we expand the checks over the rest of the project).


#6190 update profile links

Thank you for your contribution to the KodaDot - One Stop Shop for Polkadot NFTs.
👇 __ Let's make a quick check before the contribution.
PR Type

[ ] Bugfix
[ ] Feature
[x] Refactoring

Needs QA check

@kodadot/qa-guild please review

Context

[x] Closes #6190
[ ] Requires deployment <snek/rubick/worker>

Did your issue had any of the "$" label on it?

[x] My DOT address: Payout

Screenshot 📸

[x] My fix has changed UI

Copilot Summary

oh, nvm. I think its already fixed in this PR https://github.com/kodadot/nft-gallery/pull/6187

oh, nvm. I think its already fixed in this PR #6187

yes, and i'm seeing some similar things being fixed on those two PRs, please be extra careful with modifications

@prachi00 the subscan button still points to the kusama explorer, even if i'm seing my Basilisk profile, it should redirect the user to the right subscan/address

I feel like we can close this pr as after merging with #6187 this pr doesnt have any changes left
@vikiival @roiLeo 😅

closed by #6187


Only quit app in dev mode

Otherwise the world gets stopped and we don't run installer on start in dev mode
so there is a mismatch in behavior there.

cc @keybase/react-hackers

can we use the config from local-debug so we can unset this change later if we want

I think it's good to mirror the (lack of) start behavior.. e.g. since we don't start stuff in dev, we don't stop it either.

👍


Watch twu opportunities

Includes tests? [N]
Updated docs? [N]
Proposed changes:

Refactors the list page to use helper functions instead of ternary expressions
Adds TWU opportunities to the list page

@dhruvio , you able to take a look at the changes in src/front-end/typescript/lib/interfaces/opportunities/*. I think they're mostly reasonable, maybe a little too specific.
You can ignore anything in src/front-end/typescript/lib/pages/opportunity/team-with-us/view.tsx, I added some nonsense it needed to compile.


[NOD-723] Validate that database timezone is UTC. DO NOT MERGE BEFORE NOD-467

Rebuild after update in master

Rebuild after update in master

Rebuild after update in master

Rebuild after update in master

Rebuild after update in master

Rebuild after update in master

Rebuild after update in master

Rebuild after update in master

Rebuild after update in master

Rebuild after update in master

Rebuild after update in master

Rebuild after update in master

Rebuild after update in master

Rebuild after update in master

Rebuild after update in master


Successmessage

Current coverage is 47.05%

Merging #160 into master will increase coverage by +0.20% as of b040373

@@            master    #160   diff @@
======================================
  Files           18      18
  Stmts          286     289     +3
  Branches         0       0
  Methods          0       0
======================================
+ Hit            134     136     +2
  Partial          0       0
- Missed         152     153     +1

Review entire Coverage Diff as of b040373

Powered by Codecov. Updated on successful CI builds.


Manual User permissions ovewritten

When user permission are modified in the apps manager UI they do not stay persistent through a cf-mgmt pipeline push. Can a feature flag be added so that manual additions stay in place and can be added to the pipeline at a later time. @skibum55

For a given space/org that you don't want cf-mgmt to remove or revert changes you can set the following property in orgConfig.yml and spaceConfig.yml
enable-remove-users: false
This will put cf-mgmt in an additive only mode for that given org or space.   Otherwise cf-mgmt assumes it's the master and will remove users in a given role that if they are not configured within cf-mgmt for that role.


Falso attempts to import the built-in Node.js crypto module in the browser

Is this a regression?
No
Description
If you import any function from Falso in the browser, you'll get a warning similar to the following from your bundler:

Module "crypto" has been externalized for browser compatibility. Cannot access "crypto.randomBytes" in client code. See http://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.

It happens because Falso or one of its dependencies is attempting to import the crypto module. This module is part of Node.js and is not available in the browser.
You can work around the issue by aliasing crypto to a polyfill like crypto-browserify. But this is not recommended because that polyfill is very large.
Please provide a link to a minimal reproduction of the bug
https://github.com/srmagura/falso-crypto-repro
Please provide the exception or error you saw
Module "crypto" has been externalized for browser compatibility. Cannot access "crypto.randomBytes" in client code. See http://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.

Please provide the environment you discovered this bug in
Node 18, Vite 4.3.8, @ngneat/falso 6.4.0

Anything else?
I did a quick search in the Falso codebase, and it seems that Falso itself is not importing crypto. So it must be one of Falso's dependencies that is importing it.
Do you want to create a pull request?
Yes

Root Cause
The line of code that is causing the problem is in the seedrandom package here: https://github.com/davidbau/seedrandom/blob/4460ad325a0a15273a211e509f03ae0beb99511a/seedrandom.js#L236
Since the require is wrapped in a try-catch, it should be harmless. But bundlers don't know that. I think silencing the warning emitted by the bundler is a fine temporary solution in this case.
How to Silence the Warning
Webpack
If using Webpack, put this in your webpack.config.js:
    resolve: {
      /* ... */
      fallback: {
        // For falso. This tells Webpack to not include a polyfill (since their
        // bundle sizes are massive)
        crypto: false,
        stream: false,
      },
    },

Vite
If using Vite, create a file called src/emptyModule.ts:
// See `vite.config.ts` for why this exists
export {};

Then, add this to your vite.config.ts:
  resolve: {
    alias: {
      crypto: 'src/emptyModule.ts',
    },
  },


Release v0.3.0 (Minor)

Signed-off-by: Bernd Hufmann<EMAIL_ADDRESS>

The following 1 GitHub releases will be created once this pull request got merged.
Release v0.3.0 with changes since v0.2.9

Release v0.3.0 (Minor) 22fa5c7
Upgrade traceviewer components 92a8b43
Select experiment when opening from open command e1bfcee
remove trailing commas cddb22f

Tickets for license review for new traceviewer-base and traceviewer-react-components opened:

https://gitlab.eclipse.org/eclipsefdn/emo-team/iplab/-/issues/17180
https://gitlab.eclipse.org/eclipsefdn/emo-team/iplab/-/issues/17181

X npm/npmjs/-/traceviewer-base/0.4.2,
X npm/npmjs/-/traceviewer-react-components/0.4.2

We have the new components above not passing the license check. The license check passes in in their own repos (theia-trace-extension), so we know there is no problem - we can have them approved but no need to wait before publishing this new release.


[Bug]: pdf generated without images (canvas)

Bug expectation
Expected: pdf file generated with images (canvas)
Actual: pdf file generated without images on first run
Also I found workaround for it. We need to run screenshot function and then run pdf() once again
After this manipulation in second pdf all images are loaded, if you skip screenshot() function not all images will be loaded
Writing this workaround as it may be helpful to understand what's going wrong here or what events triggered and cause this issue to be fixed in this way.
1_pdf.pdf
2_pdf.pdf
Bug behavior

[ ] Flaky
[X] PDF

Minimal, reproducible example
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    headless: 'false',
  });
  const page = await browser.newPage();

  await page.goto(
    // small file
    'https://docs.google.com/document/d/1z7yne3yIhdsx4GCW_LwOiqS8_npPC1SvrwhiZOO8cwo/edit',
    // huge file
    // 'https://docs.google.com/document/d/1pv3GjLOAWtT7oeeIunBfzMk2A3hEPqa8B5qK4rtLG0Y/edit?usp=sharing',
    {
      waitUntil: 'networkidle2',
      timeout: 1000 * 60 * 5,
    }
  );
  await page.emulateMediaType('print');

  await page.pdf({
    path: '1_pdf.pdf',
  });
  await page.screenshot({ path: 'before_2_pdf.png' });
  await page.pdf({
    path: '2_pdf.pdf',
  });
  await page.close();
  await browser.close();
})();

Error string
no error
Puppeteer configuration
No response
Puppeteer version
20.5.0
Node version
16.14.0
Package manager
npm
Package manager version
6.14.15
Operating system
macOS

Able to repro. It is a bug in Chrome, most likely, and we need to report it to crbug.com.

@OrKoN, yeah, I expected it. Will create report later. What do you think about that workaround? Have any idea why it works this way or what events or smth triggered by that flow?

link to crbug - https://bugs.chromium.org/p/chromium/issues/detail?id=1452105


Hugo Template

Add template for Hugo static site generator.

Link to application or project’s homepage: http://gohugo.io/
Link to doc referring to deployment path: http://gohugo.io/overview/usage/#deploying-your-web-site

@julien731 apologies for the delay in replying to this.
I had a lot of these templates requested, but I couldn't quite figure out the right place for them. I ended up settling on #2857, and you'll see the Hugo template can now be found at community/Golang/Hugo.gitignore.
Feel free to submit any future improvements to that template, and thanks again for the contribution!


Fix guide links issue in OSPO Book: chapter 03 and references

Refer issue #395

Thanks for updating the links @node !


Fix mgs-ip-address and other minor hard-code changes

What type of PR is this?
/kind cleanup

What this PR does / why we need it:
Fix mgs-ip-address and other minor hard-code changes
Which issue(s) this PR fixes:

Fixes #
Requirements:

[ ] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 2 (50.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 77.662%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/azurelustre/nodeserver.go
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
817

Relevant Lines:
1052

💛  - Coveralls


Spirv-Cross slow for load time reflection

We've been integrating spirv-cross for actual Vulkan work in the engine. In the past we've used spirv-cross as a way to obtain reflection information to produce glsl output so it was an offline process. Now that we're loading spir-v in, we want to use spirv-cross to get the shader resources at load time. However, we've observed that spirv-cross is slow to the point of not usable at load time and we're considering doing it as an offline process and have our own metadata. This is clearly undesirable though, and we'd like to avoid it. My gut feeling is that simply reading data from the binary shouldn't be too expensive so the call to spirv_cross::Compile must be doing a lot of extra work. Could you please advise on the best solution here? Thanks!

I need more information. How slow is slow? How does it compare to building actual pipelines? How fast do you expect it to be? Which SPIR-V modules did you test with?

We have two code paths. One that uses SPIRVCross to load reflection data from the SPIRV directly and another that uses custom code to load reflection data that we extracted offline and wrote into a custom binary header that we put in front of the SPIRV data.
Executing shader reflection parsing on 500 pairs of vertex and pixel shaders gives these timings.
Custom Reflection = 0.01 seconds
SPIRVCross Reflection = 12.14 seconds.
These are collected from a PC debug build of our game, though in this context the SPIRVCross library was built with optimizations enabled (/O2).
We are launching our game with a debugger attached, meaning the Windows debug heap is enabled. Also note that our SPIRV is optimized and debug data has for the most part been removed.

That's about 24 ms per shader pair, which sounds like very sketchy.
There's generally a lot of heap allocations, so there could be a freak case with the debug heap? What happens if you use a proper heap?
For reference, I tried hacking up main.cpp to call the constructor in a loop with a test shader of 5.5 kB (glslangValidator -H -V -o test.spv shaders/tese/water_tess.tese) (has debug info so lots of string allocation and so on). 1 Compiler construction from SPIR-V, including SPIR-V parsing takes 28 microseconds (of course, this is with warm caches, but still). That's 3 orders of magnitude faster than your numbers. This is on Linux with optimizations. In a debug -O0 build I get 200 microseconds per constructor, but still no-where near this slow.

Disabling the debug heap (start without debugging in Visual Studio) gives these numbers:
0.03 seconds vs 20.01 seconds
Perhaps a bit more detail on how we use the library. We grab the incoming spirv and create a compiler object for them as normal so
spirv_cross::Compiler compiler(spirv);
and then we cache the resources using
compiler.get_shader_resources()
Then for every resource we want to look for we search in the resources. It's worth noting that these numbers are just for the instantiation of the spirv_cross::Compiler object, and we haven't timed the rest which adds even more cost on top.

Sure, I just measured with instantiating with the Compiler object as well, but it's fairly obvious what the culprit is now (1000x slowdown, wow? o_O). Sounds like this is your real issue, not SPIRV-Cross per-se.

When you say it's fairly obvious what the culprit is, do you mean it's the debug heap? I can't realistically disable the debug heap for programmers here to be able to run spirv_cross.

Yes, the debug heap (or some other debug mechanism) is clearly the culprit here. Is it possible to temporarily disable it ala https://msdn.microsoft.com/en-us/library/5at7yxcs.aspx? (No idea if it does what you need).
I don't know anything about the debug heap, so the two first suggestions I got from talking with others was:

Is _CRTDBG_CHECK_ALWAYS_DF set?
Is Appverifier running for some reason?

I assume you just need debug heap to debug your code, not SPIRV-Cross', which runs clean in Valgrind.

The debug heap issue is just a side effect of linking the static library against our main executable, we don't really need to verify that SPIRV-Cross is good.
I've been asking around here and it seems like we also have these kinds of issues with DX11 reflection libraries on PC where debug build compilation is really sluggish due to this, as external libraries don't go through our memory manager. I think the decision is going to be to go with our own system and by the looks of it, it may have been desirable even for DX11, because we're not in a position to disable the debug heap.
Thanks for all your input as it has been very helpful. We'll still use SPIRV-Cross in the shader compiler for sure, but I think the runtime information will have to be a simple binary header at the top of every shader.

Fair enough. Don't think there is anything to do for me here now, so closing.


 and not "But it failed!"

Messages are implemented client-side (so they can be translated).

All this is assuming this is the correct error message. @Marty-D? @DaWoblefet?

I got it from the known bug mechanics project so it should be

https://github.com/Zarel/Pokemon-Showdown/projects/3#card-24620941

Sounds good. I wonder if there's some way to remind users to link Known Mechanics Bugs in relevant PRs.

You could edit it into the main post, but you could also just do a search in the mechanics bug project if you see a PR around mechanics and are unsure of the context...

ill edit the prs i have with a link to the relevant mechanic bugs

The HP is full message isn't exclusive to Rest failing, it's used for all recovery moves at full HP.

currently all recovery moves used at full hp just say "but it failed!" don't they?

Oh, is it also displayed when Rest is used at full HP with no status?

i can check on my moon save file real fast

okay, i tested it on pokemon moon, recover does say it even when used at full HP with no status. meaning this becomes an entirely different issue

Not only should all recovery moves at full HP display "'s HP is full!", including Heal Pulse, Pollen Puff, and Floral Healing, but Rest gets its message at a different point than all the other recovery moves. See SadisticMystic's list of checks done before move execution; Rest at full HP is checked at step 28, while the other healing moves are checked at step 40.

The " [Pokemon]'s HP is Full!" message should definitely be added to to client regardless but not as a rest specific fail

Agreed.

Tomorrow after classes i'll add the "fullHpFail" to the client and change rest to use it then make a new pr for the ones that also use it in-game, which i'll have to test before i make the changes to other moves

fullHpFail is a bad name. Look at how the other messages are named.

It should probably start with fail. failFullHp might work, but I think I'd rather put it in "misc effects" under heal:fail.

Sorry, i said i'd do the pr updates yesterday. I might not be until the weekend at this rate since i've had too get up earlier than normal this entire week so i've been too tired to get the updates done once i got home

Don't worry about it - there isn't a timer on this! Take your time, thank you for your contributions. :)

Should we put the other heal failure messages in this PR, too? What situations do they occur in?

I'm going to test that ingame when i have time so that may take a bit longer. I'll probably make a new pr for all of those


[Feature Request] Regex to select text

The range specification and the line specification have limited expressiveness when selecting text from embed.
It would be ideal to specify a regex or set of regexes to apply to the text and select out the information from the embed
Specific Example

FILENAME

Nothing cool up here
something cool below

Things are awesome

something unrelated
more unrelated

The following query
file: [[FILENAME]]
ranges: "something cool below" to "something unrelated"
display: embedded
join: "- "

Will output to:

something cool below

Things are awesome

something unrelated

instead of:

Things are awesome

Ideally, we can subselect the bullets we want. (also bullet parsing functionality would generally be awesome as well)

Alternatively, you can create a regex post processor that allows some degree of filtering.

So, if I'm understanding, you basically want to be able to delimit what gets included in the reference, so that it will capture future updates in a flexible way? Because if it's static, you could just use ranges: "Things are awesome"
I think regex would fall into a similar issue to what's currently there in that you'd have to distinguish between what's included in the quote and what's simply used to delimit it.
Anyways, my thoughts are that maybe another range type could be added. Maybe something like between "string" and "string".

join: "- "
P.S. - the join text is only added if there are multiple ranges, and only between the ranges, not as a prefix.

I think regex would fall into a similar issue to what's currently there in that you'd have to distinguish between what's included in the quote and what's simply used to delimit it.

I was thinking about a regex operator with capture parentheses (see Capturing).  Continuing with the example the following regex:
regex: "something cool below"(.*)"something unrelated"

should capture
   - Things are awesome

Because if it's static, you could just use

It's dynamic. It might be easier If I explain the full use case. I have a set of daily notes that I capture. Then on a weekly and monthly basis, I embed the section with all the bullets in a big end-of-week list but it's polluted. Ideally I would like to slice by parent bullet and list child bullets. The number of child bullets would be dynamic as well.
Now that we are talking about it. There is something else that is a "problem." Even with a regex, the leading whitespace would be annoying to remove. If you have multiple lines then you wouldn't be able to remove the whitespace with regex.
Example:
- something cool below
   - Things are awesome
   - Things are awesome 2
- Something unrelated

with:
regex: "something cool below"\s*(.*)"something unrelated"

would yield
- Things are awesome
   - Things are awesome 2

This is why I think a regex post processor might make sense. A regex to remove text from the initial embed.

Alternatively, I'm thinking about writing a plugin (or pull request) to do a list query which is probably closer to what I'm trying to get to.

Let me stew on this for a bit and come up with a proposal, now that I'm following the use case.

So right now I'm leaning towards being able to select a bullet in the path line with something like [[File#-Parent Bullet]]. Then from there, you could set the range of what you want to include, since by default it would include the bullet itself. I'm still thinking about what syntax to use to indicate a bullet that couldn't (or likely wouldn't) get mixed up with a heading involving those characters.
In addition, I'm thinking of adding an option to the line:col range of end, so for selecting all bullets after the parent, you could do: ranges: 1:0 to end.

Cool, this seems functional. I share your concerns with the hash. Things would get really complicated if you have multiple headings. Technically you would lose a bit of expressiveness if you just use a hash.
Imagine this note:
# Heading 1
-Parent Bullet
  - Thing that i may want at some other time
# Heading 2
-Parent Bullet
  - Thing I want

Note: my exact use case would be satisfied by the hash approach, but just proposing this from a "API" design POV

You should now be able to accomplish what you were trying with:
```quoth
path: [[file#-something cool below]
ranges: after 1:0
```


Modify  approve csr related content

Signed-off-by: wangglbj<EMAIL_ADDRESS>Modified the following two aspects:

Switch to hub context before get csr.
Only after the patch is completed can valid information be obtained of managedcluster.
@zhiweiyin318  could you help to review again. thanks

@wangglbj I think you need to fetch the upstream codes, and rebase you branch.

@wangglbj you don't need to close your PR and open a new one. you can do the git operations on this branch, and force push after finish rebase.


Cold > Cool

need to change Cold to Cool
https://docs.microsoft.com/en-us/azure/storage/blobs/access-tiers-overview

@jiyongseong : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@alkohli
Can you review the proposed changes? IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"

Confirmed with @alkohli , changes look good. #sign-off

#sign-off


feat(acl): added a config always_use_authenticated_groups to support using authenticated groups even when an authenticated consumer exists.

Summary
Currently, authenticated groups will only be used when there is no consumer or the consumer is anonymous. When there is an authenticated consumer, there is no way to use authenticated groups, only the groups associated with the consumer will be used.
This PR adds a config always_use_authenticated_groups to support using authenticated groups even when an authenticated consumer exists. If enabled, it will first try to use authenticated groups and will fallback to use the groups associated with the consumer if authenticated groups don't exist, which is consistent with the logic in the anonymous consumer case.
Checklist

[x] The Pull Request has tests
[x] A changelog file has been created under changelog/unreleased/kong or skip-changelog label added on PR if changelog is unnecessary. README.md
[ ] There is a user-facing docs PR against https://github.com/Kong/docs.konghq.com - PUT DOCS PR HERE

Issue reference
https://konghq.atlassian.net/browse/FTI-5945

Please resolve the conflict.


LED Example: On/Off Inverted in Homekit Display

When I ran the LED example Homekit showed that the Light was off when the LED was on (and vice versa). I got the expected result by modifying the following line:
https://github.com/maximkulkin/esp-homekit-demo/blob/90693e10d94a1f19a3bd1737512e9cae91fc3428/examples/led/led.c#L29
gpio_write(led_gpio, on ? 1 : 0);
The way you have it currently the when on = true the LED is set to 0 (which turns it off), so I believe that should be reversed.
Disclaimer: I only have a basic electronics understanding so I could be wiring things backwards. (I have a resistor pulling the negative lead to ground when the GPIO pin is activated.) But this change caused the expected results for me. :)
Thank you for the wonderful code! Homebridge has been too unreliable for me once I add more than one or two plugins, so I am excited to be able to create my own devices which can speak directly to Homekit!

Update: scratch that, actually my change makes the 1 : 0 redundant, so this is my final line of code for this.
gpio_write(led_gpio, on);

What kind of board do you have? My Makerfocus NodeMCU and HiLetgo NodeMCU boards behaved correctly with existing code.

I picked them up at amazon. I picked them kind of randomly. I was unable to find any documentation for them... they seem to me made by DOIT, but they don't provide any documentation for that model.
Makerfocus 2pcs ESP8285 ESP-M2 CH340 Development Board WIFI Serial Port Module CH340 Compatible with ESP8266
After watching more YouTube videos I ordered some D1 Mini boards as well. They  will arrive this evening so I can try the code on it as a test.
I suppose if this is an inconsistent behavior the an INVERT_LED_STATUS flag could be set at the top of the example code just in case. I will report back later.

OK I just tested my LED code on the Makerfocus (Wemos clone?) D1 Mini, and using pin 2 controls the internal blue LED light. Its state is the inverse of the Makerfocuse ESP8285 board.
I guess the truth is, these are just code examples and if we aren't clever enough to correct an inverted LED state then we sure aren't going to be able to do anything else with this SDK. It probably isn't worth changing anything. ;)


(codelite) Migrated to AU

Other changes

Updated license url to their github repository
Added project source url
Added bug tracker url
Added docs url
Added mailing list url
Updated description and summary
Made au replace release notes on update
Added Copyright
Updated package source url

Known issues

Uninstall isn't completely silent, pops up a message box asking the user whether to
Remove user configuration or not. (Didn't want to handle this since I believe this is a decision
that should be made by the user).

@gep13
NOTE: to fix issue #252 the package can be packed and pushed as is, before running au.
NOTE 2: The latest version (9.2.0) is currently in reject state.

Thanks! I have just merged and pushed, and I have unrejected the rejected package version.

👍


incorrect resolution & auto web fallback

testing the web sdk on www.nate-hindman.com and the content shown in the displayed results frequently resolves incorrectly. For instance:

on nate-hindman.com in mobile web, search "Lil Wayne", click on "Gone Till November" (7th result down) and I'm sent into the "10 Years of Bling Vol. 1" album in Spotify (which doesn't have the song "Gone Till November" song in it)

on nate-hindman.com in mobile web, search the artist "Mapei", click on Stubhub (2nd result down) and I'm sent into Spotify, to a Mapei album ("Cocoa Butter Diaries EP")

finally, when I attempt return to nate-hindman.com on my Chrome mobile web browser after being in Spotify's app, the web page automatically resolves to previously requested content on Spotify.com (in the former case, it's the "10 Years of Bling Vol. 1" album on Spotify.com and in the latter case it's the "Cocoa Butter Diaries EP" album on Spotify.com)
as a reminder, here's the gist showing my implementation on wordpress:
https://gist.github.com/nhindman/ad3e39b05aee925f2dde

@nhindman It looks like a classic for-loop closure capture bug hiding in the Javascript somewhere. Note that every single search result resolves to the page from the last result.

@jerluc ah good call. would that also explain the auto load of spotify.com when i return to the page in chrome?

@nhindman Not entirely sure what the cause of that particular bug is, but I have a working patch that you can test for fixing the onclick: https://github.com/URXtech/urx-sdk-web/tree/resolve-bugfix

@nhindman @jlturner Also, a PR for your reviewing pleasure https://github.com/URXtech/urx-sdk-web/pull/5

@jerluc @jlturner thanks dude! just tested the onclick fix and no change in resolution (still last result every time) but perhaps Wordpress needs a sec to register the change. will try again in the am and let you know.

@nhindman this was resolved, correct? (no pun intended)

the incorrect resolution was resolved, but the auto web fallback has not
yet been resolved
On Tue, Jan 27, 2015 at 5:28 PM, Jeremy Lucas<EMAIL_ADDRESS>wrote:

@nhindman https://github.com/nhindman this was resolved, correct? (no
pun intended)
—
Reply to this email directly or view it on GitHub
https://github.com/URXtech/urx-sdk-web/issues/4#issuecomment-71741795.

--
Nate Hindman
URX http://www.urx.com | @NateHindman http://www.twitter.com/nhindman

Got it. I might be wrong here (@jlturner feel free to correct me here) but I don't think it's possible yet from web to fix the web auto-fallback upon returning to the browser, as that behavior is relied upon (but really "exploited" is the right term) for performing the fallback under the normal scenario (when a user does not have the app installed).

That was my understanding based on what @jlturner told me. Also, if a user
it out of the browser page for greater than 10 secs, it doesn't
auto-fallback upon returning
On Tue, Jan 27, 2015 at 5:42 PM, Jeremy Lucas<EMAIL_ADDRESS>wrote:

Got it. I might be wrong here (@jlturner https://github.com/jlturner
feel free to correct me here) but I don't think it's possible yet from web
to fix the web auto-fallback upon returning to the browser, as that
behavior is relied upon (but really "exploited" is the right term) for
performing the fallback under the normal scenario (when a user does not
have the app installed).
—
Reply to this email directly or view it on GitHub
https://github.com/URXtech/urx-sdk-web/issues/4#issuecomment-71744008.

--
Nate Hindman
URX http://www.urx.com | @NateHindman http://www.twitter.com/nhindman


[ISSUE #4791] Add elect master command for admin CLI

Make sure set the target branch to develop
What is the purpose of the change
close #4791
Brief changelog

Add elect master command for admin CLI

Verifying this change
XXXX
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Coverage decreased (-0.1%) to 49.029% when pulling 89782d20c9ad584e70b2aab15bdd3986992388dc on mxsm:rocketmq-4791 into ce274265db8af73e28624ecc1fc98cc984658844 on apache:develop.

Codecov Report

Merging #4798 (89782d2) into develop (ce27426) will increase coverage by 0.11%.
The diff coverage is 22.22%.

@@              Coverage Diff              @@
##             develop    #4798      +/-   ##
=============================================
+ Coverage      44.86%   44.97%   +0.11%
- Complexity      7589     7630      +41
=============================================
  Files            977      978       +1
  Lines          67957    68045      +88
  Branches        8983     8996      +13
=============================================
+ Hits           30489    30604     +115
+ Misses         33673    33654      -19
+ Partials        3795     3787       -8

Impacted Files
Coverage Δ

...g/apache/rocketmq/client/impl/MQClientAPIImpl.java
23.38% <0.00%> (-0.28%)
:arrow_down:

...r/namesrv/controller/ElectMasterRequestHeader.java
0.00% <0.00%> (ø)

...ntroller/processor/ControllerRequestProcessor.java
25.00% <0.00%> (-1.20%)
:arrow_down:

...apache/rocketmq/tools/admin/DefaultMQAdminExt.java
31.97% <0.00%> (-0.19%)
:arrow_down:

...he/rocketmq/tools/admin/DefaultMQAdminExtImpl.java
25.67% <0.00%> (-0.03%)
:arrow_down:

.../apache/rocketmq/tools/command/MQAdminStartup.java
0.00% <0.00%> (ø)

...ools/command/controller/ElectMasterSubCommand.java
0.00% <0.00%> (ø)

...q/controller/impl/manager/ReplicasInfoManager.java
66.39% <81.48%> (+5.94%)
:arrow_up:

...he/rocketmq/client/trace/AsyncTraceDispatcher.java
81.42% <0.00%> (-1.43%)
:arrow_down:

...mq/store/ha/autoswitch/AutoSwitchHAConnection.java
74.38% <0.00%> (-0.82%)
:arrow_down:

... and 26 more

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

Thank you for your contribution. After modifying the above review suggestions, can you test your cli command and add a picture to prove the correctness? (The elect master command can correctly trigger the master election) @mxsm

Thank you for your contribution. After modifying the above review suggestions, can you test your cli command and add a picture to prove the correctness? (The elect master command can correctly trigger the master election) @mxsm

OK, I will

Correctness result proof。
environment:
two brokers  are deployed in the WSL, Namesrv(Controller) is deployed in windows.


Listen on a different ip on the same server

Hi,
I have a setup where i run node js on the same server with 2 ip's.
Socket IO needs to run on port 80, so i want to attach my second ip to this instance?
Without a cluster i did it like this.
  var server = https.createServer(options, function (req, res) {     }); server.listen(port,'xxxx');
How can i achieve this with your wonderfull module ? :)

Well, currently sticky-cluster has only an option to configure port, not host in server.listen() call, but it can be changed quite easily, PR's are welcome )

Thx, do you know in what file i can make the modification?

lib/index.js -- list of options
lib/master.js -- listen() call
README.md -- docs
package.json -- version


Command line words beginning with hyphen treated as package names, not unrecognized arguments

Package names after --packages-select with leading hyphens are treated as package names, and colcon logs a warning (which may be missed among the heavy tool output). I expect such arguments to be treated as unparsed arguments and for colcon to exit with an error.
$ colcon build --camke-clean-cache --packages-select rcl
usage: colcon [-h] [--log-base LOG_BASE] [--log-level LOG_LEVEL] {build,extension-points,extensions,graph,info,list,metadata,mixin,test,test-result,version-check} ...
colcon: error: unrecognized arguments: --camke-clean-cache

$ colcon build --packages-select rcl --camke-clean-cache
[0.745s] WARNING:colcon.colcon_core.package_selection:ignoring unknown package '--camke-clean-cache' in --packages-select
Starting >>> rcl
Finished <<< rcl [0.67s]

Summary: 1 package finished [1.57s]

--camke-clean-cache is not a valid option. Therefore argparse will consider it to be a package name argument since that option is greedy. So I think the behavior is expected.
Do you have a specific proposal how you imagine this to be improved?

Closing based on the conversation on the referenced PR: https://github.com/colcon/colcon-package-selection/pull/30#issuecomment-601431409.

@dirk-thomas this is still a usability issue. My proposed fix falls short of your quality standards but that doesn’t resolve the root cause

this is still a usability issue. My proposed fix falls short of your quality standards but that doesn’t resolve the root cause

Atm a warning is being printed which will point the user to the problem. Without narrowing the valid package names I am not sure how it could be improved. Please feel free to make proposals how else you think it can be achieved.

A couple possible solutions. Do you like any of them?

Don't treat names starting with hyphens as possible package names. I think you don't like this solution. I do because it makes colcon behave more consistently; as it stands, package names that are a prefix to an existing command line option are a prefix to an exiting argument starting or that start with "-h" (or any other single-dash command line option) already cause the tool to fail.

colcon list --packages-select rcl "--pack"
...
colcon list: error: ambiguous option: --pack could match --packages-ignore, --packages-ignore-regex, --packages-up-to, --packages-above, --packages-above-depth, --packages-select-by-dep, --packages-skip-by-dep, --packages-skip-up-to, --packages-select-build-failed, --packages-skip-build-finished, --packages-select-test-failures, --packages-skip-test-passed, --packages-select, --packages-skip, --packages-select-regex, --packages-skip-regex, --packages-start, --packages-end

colcon list --packages-select rcl "-not-a-package"
...
colcon list: error: argument --names-only/-n: ignored explicit argument 'ot-a-package

Treat missing package names as an error unconditionally. I don't know that this is reasonable, especially since it would mean if a package is skipped with both --packages-skip and a COLCON_IGNORE file, it would result in an error.

Treat missing packages as an error instead of a warning if they start with "-". I think it's reasonable but I don't love it.

Require a delimiter to end list arguments, like --packages-select foo bar -- <non-package-args>. This would require the most invasive changes to the argument parser, but I think it's the most robust solution.

Agreed with your conclusion - not reasonable.

This kind of behavior change is very weird for a user. So I don't think it is a good choice.

Requiring a delimiter just for the awkward use case of users misspelling arguments and getting a warning instead of a desired error is an unnecessary burden on the user. Simply because it just works without already (except the way the invalid argument is signaled).

Don't treat names starting with hyphens as possible package names. I think you don't like this solution.

When I rejected the previous proposal (#30) that was due to the implied restriction of valid package names. That kind of restriction is what I am opposed to.

package names that are a prefix to an existing command line option or that start with "-h" (or any other single-dash command line option) already cause the tool to fail.

This is a good example of a case which should be supported (even though such a package is highly unlikely). And the same kind of problem is already being handled in other cases, e.g. when passing arbitrary arguments to another tool: https://github.com/colcon/colcon-core/blob/d6a7391cd6ed723918dcd10ce72130ac66b5fc57/colcon_core/task/python/test/pytest.py#L41 I think the same approach should work for package names:

If a package name starts with a - it is being rejected at parse time of the command line arguments.
In order to pass package names with a leading - the user has to quote them and prefix them with a space.

How does that sound? Are you interested in implementing this (I am mostly asking because your previous comment in https://github.com/colcon/colcon-package-selection/pull/30#issuecomment-601430496 sounded like you were not)?

I don’t like the leading space approach. It relies on awkward quoting and also restricts package names to not start with “ “, which doesn’t seem different from restricting them from starting with “-“.
I could implement a solution but this fix solves the problem no better for me than the rejected one in the linked PR.

Is this purely hypothetical or is there any project name in any package system that leads with a hyphen? Because if purely hypothetical, I’d be willing to separate solution 1 from the rest of my fork and submit a minimal PR.

I don’t like the leading space approach. It relies on awkward quoting ...

You have mentioned the same preference in the previous conversation. But since you can't provide an alternative solution (which doesn't restrict the naming of packages) I will stick to this approach which has proven to work for e.g. passing arguments to tools like cmake / ctest / pytest.

and also restricts package names to not start with “ “, which doesn’t seem different from restricting them from starting with “-“.

I see a pretty significant difference in these two cases. If we would really like to support a leading space in a name (which I am pretty confident no package manager does support) the logic could easily be updated to only strip the first space - so if you need to pass a package name with a leading space you just quote the name and prefix another space.

I could implement a solution but this fix solves the problem no better for me than the rejected one in the linked PR.

I see a big difference in restricting the namespace of something (without the proper rational / reason) and making an unusual use case (a package name with a leading dash) slightly less convenient.

I’d be willing to separate solution 1 from the rest of my fork and submit a minimal PR.

I will go ahead an implement this myself since as mentioned before the part of the previous PR doesn't address this in a way which I consider to be adequate.
Thanks for the feedback. Especially the pointed out collision with other command line arguments was helpful for me.

I see a pretty significant difference in these two cases. If we would really like to support a leading space in a name (which I am pretty confident no package manager does support)

Again, do any package managers support a leading dash in a package name?

do any package managers support a leading dash in a package name?

RPM does - I just verified it locally. I can't see any package naming guidelines which forbid it in Fedora, either: https://fedoraproject.org/wiki/Packaging:Naming


Documentation: Animated GIF with Single Machine

Add a animated GIF to show Single Machine Ciao.
Longer term we need to move the documentation binaries to a separate repository.
This GIF will be linked to from the Wiki page
https://github.com/01org/ciao/wiki/Single-Machine-Development-Environment
Signed-off-by: Manohar Castelino<EMAIL_ADDRESS>

Coverage increased (+0.03%) to 66.502% when pulling c891c1c8a0690a7d266d33813b43414d62552d26 on mcastelino:documentation into dd91b0ed001bc365953537a5a4aa8b7742010693 on 01org:master.


Tabs+Riot: don't use innerHTML to move containers

When using Riot, custom tags in Phonon tabs (= Dragend.js) are broken because the tab containers get cloned and copied using innerHTML, effectively removing most of the Riot magic :smile:
This code just moves the nodes whithout cloning or otherwise modifying them, so Riot tags will work in  tab containers.

:+1:

Hello @michaelkoetter,
Thank you for your contribution.


SceneryHelper Assertion failed: accessed value outside of dependency tracking

While trying to use SceneryHelper I hit the assertion accessed value outside of dependency tracking when navigating to the GridBox element.

To reproduce:

Load the Leveling Out screen on Mean: Share and Balance
Open the Mean accordion box
Open scenery helper
Click on the info button in the accordion box
Navigate to GridBox in the selected trail

Looks like an issue with https://github.com/phetsims/axon/issues/441. @samreid and @pixelzoom, can you look into it?

I'll take a first look.

@samreid Update:
This seems to be happening with HBox too, which makes me assume that it would also happen with VBox. May be a more general dynamic layout issue...

I pushed a fix that corrects the GridBox test scenario. Did that also fix the HBox problem?

@samreid looks like it did. I'll review later today. Thanks!

The changes make sense, and things seem to be working well. Thanks!


spurious "sudo" prompts after unlock

I tested howdy with xscreenlock and after sucessfull unlocks I saw a "sudo" prompt on my console, that had no right to be there. I tracked it down to the following code in pam.py:
       # Try to dismiss the lock screen if enabled
       if config.get("core", "dismiss_lockscreen"):
               # Run it as root with a timeout of 1s, and never ask for a password through the UI
               subprocess.Popen(["sudo", "timeout", "1", "loginctl", "unlock-sessions", "--no-ask-password"])

My config file says (via default):
dismiss_lockscreen = false
From looking at the rest of the code (I never learned Python!) I figured, the if-statement should check config.getboolean. So I changed:
54c54
< 		if config.get("core", "dismiss_lockscreen"):
---
> 		if config.getboolean("core", "dismiss_lockscreen"):

That fixed the issue for me. Take it with a grain of salt...

This has already been reported in #139, with the known fix also listed. It's a very simple bug with no bad intentions behind it, as you could have easily noticed yourself by looking at the actual native command it was running.

Thanks for the quick answer!
Sorry that I did not see that old issue.
I checked the current code and found that the problem persists in the current release version.
As the fix is simple and the issue affects every installation (the sudo command is called every single time, face recognition suceeds!) I implied this would have been fixed, if it was known.
btw: I think calling sudo inside of an authentication module is a bad idea - but I will open another issue for that.