Addon management layer

Feature Description

One-line feature description (can be used as a release note): Support for system addon management
Primary contact (assignee): @justinsb
Responsible SIGs: @kubernetes/sig-cluster-lifecycle-feature-requests
Design proposal link (community repo):
Reviewer(s) - (for LGTM) recommend having 2+ reviewers (at least one from code-area OWNERS file) agreed to review. Reviewers from multiple companies preferred:
Approver (likely from SIG/area to which feature belongs):
Feature target (which target equals to which milestone):

Alpha release target (x.y)
Beta release target (x.y)
Stable release target (x.y)

# Description
Currently add-on management is baked in kube-up.sh and is subject to various kinds of issues. Current implementation lacks transparency, clear specification and any separation from other layers, among other more technical downsides. This part of the effort towards #11, and is a fairly easy one to tackle.
As discussed in kubernetes/kubernetes-anywhere#126, it looks like a low-hanging fruit, and existing projects can be easily used to pave the way. More specifically, the assumption is that Helm should work  pretty well for this, and only a thin layer of automation would be required to make it seamless.
Progress Tracker

[ ] Before Alpha

[ ] Design Approval

[ ] Design Proposal.  This goes under docs/proposals.  Doing a proposal as a PR allows line-by-line commenting from community, and creates the basis for later design documentation.  Paste link to merged design proposal here:

https://github.com/kubernetes/kubernetes/pull/29551

[ ] Initial API review (if API).  Maybe same PR as design doc. PR-NUMBER

Any code that changes an API (/pkg/apis/...)
cc @kubernetes/api

[ ] Write (code + tests + docs) then get them merged.  ALL-PR-NUMBERS

[ ] Code needs to be disabled by default.   Verified by code OWNERS
[ ] Minimal testing
[ ] Minimal docs

cc @kubernetes/docs on docs PR
cc @kubernetes/feature-reviewers on this issue to get approval before checking this off
New apis: Glossary Section Item in the docs repo: kubernetes/kubernetes.github.io

[ ] Update release notes

[ ] Before Beta

[ ] Testing is sufficient for beta
[ ] User docs with tutorials

Updated walkthrough / tutorial in the docs repo: kubernetes/kubernetes.github.io
cc @kubernetes/docs on docs PR
cc @kubernetes/feature-reviewers on this issue to get approval before checking this off

[ ] Thorough API review

cc @kubernetes/api

[ ] Before Stable

[ ] docs/proposals/foo.md moved to docs/design/foo.md

cc @kubernetes/feature-reviewers on this issue to get approval before checking this off

[ ] Soak, load testing
[ ] detailed user docs and examples

cc @kubernetes/docs
cc @kubernetes/feature-reviewers on this issue to get approval before checking this off

FEATURE_STATUS is used for feature tracking and to be updated by @kubernetes/feature-reviewers.
FEATURE_STATUS: IN_DEVELOPMENT
More advice:
Design

Once you get LGTM from a @kubernetes/feature-reviewers member, you can check this checkbox, and the reviewer will apply the "design-complete" label.

Coding

Use as many PRs as you need.  Write tests in the same or different PRs, as is convenient for you.
As each PR is merged, add a comment to this issue referencing the PRs.  Code goes in the http://github.com/kubernetes/kubernetes repository,
and sometimes http://github.com/kubernetes/contrib, or other repos.
When you are done with the code, apply the "code-complete" label.
When the feature has user docs, please add a comment mentioning @kubernetes/feature-reviewers and they will
check that the code matches the proposed feature and design, and that everything is done, and that there is adequate
testing.  They won't do detailed code review: that already happened when your PRs were reviewed.
When that is done, you can check this box and the reviewer will apply the "code-complete" label.

Docs

[ ] Write user docs and get them merged in.
User docs go into http://github.com/kubernetes/kubernetes.github.io.
When the feature has user docs, please add a comment mentioning @kubernetes/docs.
When you get LGTM, you can check this checkbox, and the reviewer will apply the "docs-complete" label.

cc @kubernetes/sig-cluster-lifecycle @kubernetes/helm-maintainers

This is related to
https://github.com/kubernetes/kubernetes/issues/23233
https://github.com/kubernetes/kube-deploy/issues/123
https://github.com/kubernetes/kubernetes/issues/23174

cc @philips

ref https://github.com/kubernetes/kubernetes/issues/7459

@mikedanese @errordeveloper Do you have any proposals for a new API, or should this be done via automation/helm or some other thing?
At least I'd like to see a kubectl command (like @justinsb did), ideally the user could just toggle predefined (built-in) addons, or apply custom ones.

@luxas so far the idea is to use Helm, and avoid creating new machinery. There would be a very thin layer on top of Helm, which would take some kind of object describing the list of addons (with optional parameters), such object would be supplied by preceding turnup phase.

To be honest, I am little puzzled with the logistics of the next step, as the tick boxes above suggest I should create a formal proposal PR to the main repo, but seem more natural for this work to go ether into "kube-deploy" or a separate repo... thoughts?

IMO, I think the repo for the proposal could go anywhere that makes sense -
that's a bit of an implementation detail. We should update the template to
work in whatever repo is the right one (in this case, it should probably go
in 'kubernetes-anywhere', i'd imagine).
I think kube-deploy may be a bit out of date.
On Mon, Jul 4, 2016 at 9:52 AM, Ilya Dmitrichenko<EMAIL_ADDRESS>wrote:

To be honest, I am little puzzled with the logistics of the next step, as
the tick boxes above suggest I should create a formal proposal PR to the
main repo, but seem more natural for this work to go ether into
"kube-deploy" or a separate repo... thoughts?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/features/issues/18#issuecomment-230327065,
or mute the thread
https://github.com/notifications/unsubscribe/AADIdRPRQLeR-_kqmdpAuGdguLK8weXWks5qSTpYgaJpZM4JATJo
.

The point of abstracting an addon manager is to reduce the duplicated effort across deployment automations that everyone goes through building addon management. It feels weird to shove the proposal in kubernetes-anywhere since this feature won't be implemented in kuberentes-anywhere. Can we find a centralized place to post design proposals? How about this repo? @pwittrock

+1 to what @mikedanese says.  We need to view this as a cross-cutting thing that isn't tied to any particular deployment tool.
Note that we essentially have 2 types of addons.  Ones that are pretty much necessary to make a cluster functional (DNS) and ones that are actually optional.
I question using a tool like helm for the addons in the first category.  It is a big dependency to take on for every kubernetes install and doing so would essentially bring it in to the "core".  We should be able to find a lighter weight solution for deploying and managing DNS.

Interesting - I hadn't thought of this to be the central place for
proposals, but I don't see any reason why that would break. The only
problem (of course) is that we would need to enforce that elsewhere -
otherwise you then have 15 repos for proposals PLUS this centralized one
which either leads to people missing stuff or duplication.
Open to either suggestion.
On Tue, Jul 5, 2016 at 9:21 AM, Joe Beda<EMAIL_ADDRESS>wrote:

+1 to what @mikedanese https://github.com/mikedanese says. We need to
view this as a cross-cutting thing that isn't tied to any particular
deployment tool.
Note that we essentially have 2 types of addons. Ones that are pretty much
necessary to make a cluster functional (DNS) and ones that are actually
optional.
I question using a tool like helm for the addons in the first category. It
is a big dependency to take on for every kubernetes install and doing so
would essentially bring it in to the "core". We should be able to find a
lighter weight solution for deploying and managing DNS.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/features/issues/18#issuecomment-230527901,
or mute the thread
https://github.com/notifications/unsubscribe/AADIdbEgbcFsqUcAD0xYgWPP2Bc8w9xGks5qSoSXgaJpZM4JATJo
.

I would like people to be able to subscribe to kubernetes/features and see
a relatively succinct stream of updates on feature progress.
That will not be possible if there are design proposal PRs being discussed
in the repo.
So, please not in this repo
On Jul 5, 2016 9:41 AM, "David Aronchick"<EMAIL_ADDRESS>wrote:

Interesting - I hadn't thought of this to be the central place for
proposals, but I don't see any reason why that would break. The only
problem (of course) is that we would need to enforce that elsewhere -
otherwise you then have 15 repos for proposals PLUS this centralized one
which either leads to people missing stuff or duplication.
Open to either suggestion.
On Tue, Jul 5, 2016 at 9:21 AM, Joe Beda<EMAIL_ADDRESS>wrote:

+1 to what @mikedanese https://github.com/mikedanese says. We need to
view this as a cross-cutting thing that isn't tied to any particular
deployment tool.
Note that we essentially have 2 types of addons. Ones that are pretty
much
necessary to make a cluster functional (DNS) and ones that are actually
optional.
I question using a tool like helm for the addons in the first category.
It
is a big dependency to take on for every kubernetes install and doing so
would essentially bring it in to the "core". We should be able to find a
lighter weight solution for deploying and managing DNS.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<https://github.com/kubernetes/features/issues/18#issuecomment-230527901
,
or mute the thread
<
https://github.com/notifications/unsubscribe/AADIdbEgbcFsqUcAD0xYgWPP2Bc8w9xGks5qSoSXgaJpZM4JATJo
.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/features/issues/18#issuecomment-230533100,
or mute the thread
https://github.com/notifications/unsubscribe/AHuudk70H0xwEJbWPbOd0RRimpGV_55aks5qSokYgaJpZM4JATJo
.

xref https://github.com/kubernetes/k8s.io/issues/5

@errordeveloper @kubernetes/sig-cluster-lifecycle can you clarify the actual status of the feature?

@errordeveloper @kubernetes/sig-cluster-lifecycle any update on this?

This is a big deal, big need in the community.  I would hope that we would use helm, since it is being used a ton.  Happy to talk through use cases.

@idvoretskyi all of us are just getting back from kubecon btw 😀

From reading kubernetes/kubernetes#29551, it seems this is going to use kubectl apply?

@errordeveloper @kubernetes/sig-cluster-lifecycle does this feature target alpha, beta or stable for 1.5?

If we have time for this in the v1.6 timeframe I think it will be alpha.
@erictune Yes, basic manifest installation will be with kubectl apply, but we might consider a more advanced alternative as well (maybe using helm as the base, we haven't decided anything yet)

@errordeveloper @idvoretskyi this needs an alpha-in-1.5, beta-in-1.5, or stable-in-1.5 label if it's going to be included in release notes for kubernetes 1.5; it's listed as "alpha" in this spreadsheet... if it's not going into 1.5, we should remove it from that spreadsheet (yay multiple information sources)

I am afraid it won't make it to 1.5...
On Fri, 18 Nov 2016, 23:59 Aaron Crickenberger<EMAIL_ADDRESS>wrote:

@errordeveloper https://github.com/errordeveloper @idvoretskyi
https://github.com/idvoretskyi this needs an alpha-in-1.5, beta-in-1.5,
or stable-in-1.5 label if it's going to be included in release notes for
kubernetes 1.5; it's listed as "alpha" in this spreadsheet
https://docs.google.com/spreadsheets/d/1g9JU-67ncE4MHMeKnmslm-JO_aKeltv2kg_Dd6VFmKs/edit#gid=0...
if it's not going into 1.5, we should remove it from that spreadsheet (yay
multiple information sources)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/features/issues/18#issuecomment-261673331,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPWSw3n0xAKJUrTe4MwUWfopcjnhwZwks5q_jvlgaJpZM4JATJo
.

@spiffxp Nope, you can remove it from v1.5 in the spreadsheet

See also https://github.com/kubernetes/kubernetes/issues/42756

Sorry, using the previous issue: https://github.com/kubernetes/kubernetes/issues/23233

We are discussing this in sig-cluster-lifecycle; unsure if it will make 1.7 but it's certainly in the running.

@errordeveloper I've updated the feature description to fit the new template. Please, fill the empty fields in the new template (their actual state was unclear).

@justinsb, are you the one working on this for 1.7?

Yes, updated

@justinsb several fields at the description are still not updated - please, fill them. cc @kubernetes/sig-cluster-lifecycle-feature-requests

This won't make v1.7, @justinsb is targeting alpha in v1.8 for this

@luxas thanks for updating.

@justinsb confirmed yesterday that this targets alpha in v1.8

@luxas please, update the feature description with the actual timeline.

@justinsb Will this be only design docs for v1.8 or actual code?

Maybe we should just take the working code from kops.

Moving to next-milestone due to lack of activity here

@errordeveloper @justinsb @luxas @kubernetes/sig-cluster-lifecycle-feature-requests Any plans for this in 1.11?
If so, can you please ensure the feature is up-to-date with the appropriate:

Description
Milestone
Assignee(s)
Labels:

stage/{alpha,beta,stable}
sig/*
kind/feature

cc @idvoretskyi

Adding @johnsonj, who is actively working on add-ons management

Yes! We can unfreeze this bug. I'm starting to look at this area (along with justinsb@) and would like to reach an end state that works for Kubernetes generally. The plan today is to dream, start a solution in the cluster-api/cluster-lifecycle, and grow it from there. Will update with designs as they happen.

/remove-help
I don't think this meets the criteria for help wanted. Please add back via /help if I'm incorrect

@johnsonj cool to hear. Is there already some draft to review?

Not yet @fabiand but that is at the top of my list!

Thanks for the update, everyone!
I'm going to hold this as next-milestone, but if anyone feels differently, just let me know.
/remove-lifecycle frozen

/milestone clear
since this is not tracked

Hello @errordeveloper , I'm the Enhancement Lead for 1.15. Is this feature going to be graduating alpha/beta/stable stages in 1.15? Please let me know so it can be tracked properly and added to the spreadsheet. A formal KEP will need to be merged before this can be included into 1.15.
Once coding begins, please list all relevant k/k PRs in this issue so they can be tracked properly.

Hi @errordeveloper @bgrant0607  , I'm the 1.16 Enhancement Lead.  Is this feature going to be graduating alpha/beta/stable stages in 1.16? Please let me know so it can be added to the 1.16 Tracking Spreadsheet. If not's graduating, I will remove it from the milestone and change the tracked label.
Once coding begins or if it already has, please list all relevant k/k PRs in this issue so they can be tracked properly.
As a reminder, every enhancement requires a KEP in an implementable state with Graduation Criteria explaining each alpha/beta/stable stages requirements.
Milestone dates are Enhancement Freeze 7/30 and Code Freeze 8/29.
Thank you.

Hello @justinsb @errordeveloper , 1.17 Enhancement Shadow here! 🙂
I wanted to reach out to see if this enhancement will be graduating to alpha/beta/stable in 1.17?

Please let me know so that this enhancement can be added to 1.17 tracking sheet.
Thank you!

🔔Friendly Reminder

The current release schedule is

Monday, September 23 - Release Cycle Begins
Tuesday, October 15, EOD PST - Enhancements Freeze
Thursday, November 14, EOD PST - Code Freeze
Tuesday, November 19 - Docs must be completed and reviewed
Monday, December 9 - Kubernetes 1.17.0 Released

A Kubernetes Enhancement Proposal (KEP) must meet the following criteria before Enhancement Freeze to be accepted into the release

PR is merged in
In an implementable state
Include test plans and graduation criteria

All relevant k/k PRs should be listed in this issue

/remove-lifecycle stale

Hey there @justinsb ,
1.18 Enhancements team member here. I wanted to check in and see if you think this Enhancement will be graduating to alpha/beta/stable in 1.18? Enhancements are going to be frozen on January 28.
If you do, I'll add it to the 1.18 tracking sheet (https://bit.ly/k8s-1-18-enhancements). Once coding begins please list all relevant k/k PRs in this issue so they can be tracked properly. :+1:
Please note that for a Kubernetes Enhancement Proposal (KEP) to be accepted into the release must meet the following criteria before Enhancement Freeze:

KEP PR is merged
In an implementable state
Include test plans and graduation criteria

Thanks!

The current release schedule is:

Monday, January 6th - Release Cycle Begins
Tuesday, January 28th EOD PST - Enhancements Freeze
Thursday, March 5th, EOD PST - Code Freeze
Monday, March 16th - Docs must be completed and reviewed
Tuesday, March 24th - Kubernetes 1.18.0 Released

/remove-lifecycle stale

Hey there @justinsb  -- 1.19 Enhancements shadow here. I wanted to check in and see if you think this Enhancement will be graduating in 1.19?
In order to have this part of the release:

The KEP PR must be merged in an implementable state
The KEP must have test plans
The KEP must have graduation criteria.

The current release schedule is:

Monday, April 13: Week 1 - Release cycle begins
Tuesday, May 19: Week 6 - Enhancements Freeze
Thursday, June 25: Week 11 - Code Freeze
Thursday, July 9: Week 14 - Docs must be completed and reviewed
Tuesday, August 4: Week 17 - Kubernetes v1.19.0 released
Thursday, August 20: Week 19 - Release Retrospective

If you do, I'll add it to the 1.19 tracking sheet (http://bit.ly/k8s-1-19-enhancements). Once coding begins please list all relevant k/k PRs in this issue so they can be tracked properly. 👍
Thanks!

Hi there @justinsb,
Kind reminder about my question above.
Regards,
Mirek

Hi there @justinsb,
Kind reminder about my question above.
Regards,
Mirek

Hi there @justinsb,
Kind reminder about my question above.
Regards,
Mirek

Hey @justinsb , Enhancement shadow for the v1.19 release cycle here.  Just following up on my earlier update to inform you of the
upcoming Enhancement Freeze scheduled on Tuesday, May 19.
Regards,
Mirek

@justinsb -- Unfortunately the deadline for the 1.19 Enhancement freeze has passed. For now this is being removed from the milestone and 1.19 tracking sheet. If there is a need to get this in, please file an enhancement exception.

/remove-lifecycle stale

Hi @justinsb
Enhancements Lead here. Any plans for this in 1.20?
Thanks,
Kirsten

Hi @justinsb
Any updates on this for 1.20? Enhancements Freeze is October 6th and by that time we require a merged KEP in an implementable state with test plans and graduation criteria. I currently don't see a related KEP for this.
If you plan on this graduating in 1.20, please let me know.
Best,
Kirsten


'run' matcher not exported in v1.0.1?

I'm using the 1.0.1 gem from rubygems.org. I have a params_spec.rb file like this:
describe 'my_module::params' do
  # Try various permutations of operatingsystemrelease and see what happens
  let(:facts) { {:operatingsystemrelease => '6.4'} }
  it { should run.with_params().and_return({'base_package' => 'my_package'}) }
end

when running 'rspec' to test this, it returns:
Failures:

  1) my_module::params
     Failure/Error: it { should run.with_params().and_return({'base_package' => 'my_package'}) }
     NameError:
       undefined local variable or method `run' for #<RSpec::Core::ExampleGroup::Nested_2:0x007f08386f07b0>
     # ./spec/classes/params_spec.rb:7:in `block (2 levels) in <top (required)>'

I had a look in the code, and it seems like it's all there, but somehow the 'run' matcher isn't exported into my namespace. I tried fully qualifying it (with RSpec::Puppet::FunctionMatchers::Run), but then I got the same error about the "with_params" method. I notice 'run' is the only FunctionMatcher - all the ManifestMatchers seem to work fine.
What can I do to fix this?

@coofercat You are testing a class and the run matcher is only for functions. Please use the compile matcher and the contains_ syntax.


Add annotation support to log when specific events

Deployments
Disabled definitions
Suspended definitions
Migrations

Deployment has been implemented

[ ] Add support for un-contactable grafana: If annotation cannot be logged into grafana, then a recurring task? BPM task? Camunda background task? should be created that will "eventually" send annotation into grafana.  This ensures that there is no data loss.


Provide a link or link_to helper

...to make building links slightly more convenient. Links are fun!

See #14.


Add comparison to similar projects to README

It would make live for devs much easier, trying to figure out which library to use for their needs.
... including at least petgraph.

Also
https://github.com/Pometry/Raphtory

Good idea. I can look into this. Thanks for the hint.


There is no the selection state of Limited scenarios.

System Information (please complete the following information):

Windows OS: Windows-10-Enterprise-21H1
ML.Net Model Builder (Preview): <IP_ADDRESS>7701 (Main Branch)
Microsoft Visual Studio Enterprise 2019: 16.10.3
.Net: 5.0.302

Describe the bug

On which step of the process did you run into an issue: Scenario page
Clear description of the problem:
Problem 1. When you choose one of the limited scenarios, it jumps to Consume page, then back to Scenario page, find that there is no the selection state of the limited scenario.
Problem 2. Select one supported scenario, then return to select one limited scenario, and then back to Scenario page, find that the supported scenario is selected instead of the limited scenario. I was confused about this and thought I had made a mistake, so I tried a few more times, but the result was still the same.

To Reproduce
Steps to reproduce the behavior:

Select Create a new project from the Visual Studio 2019 start window;
Choose the C# Console App (.NET Core) project template with .Net 5.0;
Add model builder by right click on the project;
Choose Anomaly detection from Limited scenarios, it jumps to Consume page;
Then back to Scenario page, find that there is no the selection state of Anomaly detection scenario;
Select Text classification from supported scenarios, then return to re-select Anomaly detection scenario;
And then back to Scenario page, find that Text classification scenario is selected instead of Anomaly detection scenario.

Expected behavior

The limited scenario should have selection state.
If problem 1 is expected ,  for problem 2, it should show no scenario is selected instead of the supported scenario is selected.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem here.

It's difficult to support selection state for limited scenarios. Our selection state is driven by the mbconfig file, and limited scenarios there is no associated mbconfig state. I considered this too low of priority to implement a special state solution.
Good find Qin! I'm closing this as "Wont fix" due to it being low priority. @Briacht to comment if this is high enough priority. Thank you!


aliases for more JetBrains products

Please create aliases so that JetBrains IDEs like WebStorm can be installed as webstorm, etc. Some JetBrains products like IntelliJ already have the appropriate aliases.

brew cask install webstorm exists.
There are already many jetbrains products.
See caskroom/homebrew-cask and more in caskroom/homebrew-versions.
If you know a missing app you are free to contribute it either as a cask or as a cask request.


fix(ha_nexus): enhance error handling in ha cluster agent

This PR handles path lookup failure by the node agent. Switchover request will be marked as Errored and will not be retried post that.
Fix in Serializing/Deserializing of Switchover Spec to Etcd.
When a Switchover request fails it used to be retried by the same Worker. This can block the worker unnecessarily. This PR also includes changes in this logic. We will send the request back to the channel.
Changes had to be made in the Exponential backoff as well to accomodate above modification.  Now we have faster requeue
of failed request upto certain configurable number. Then requests are requeued with longer delay. Sleep is out of the Worker as well.
Signed-off-by: Abhilash Shetty<EMAIL_ADDRESS>

bors try

bors merge


Perf: Stop creating parameter prefixed names

A fairly straight forward set of changes to avoid creating @ prefixed parameter names unless we need the string, for example in an error message. Most of the time we can either do a comparison that takes into account the prefixed and unprefixed possibilities or we can append the @ and then the parameter name if we just check what we already have.
Note that this does not change the parameter name that the user provides and will have no visible change as far as users are concerned. We're just being a little more careful about generating gen0 strings that are going to be thrown away.

This is green and approved. Can I get it merged before other change start causing conflicts please?


Security: API key detected in code

If this should not be exposed, please change the key and do not place the key in public areas of GitHub.
apiKey - firebase.config.local.js

See the comment at the top of firebase.config.dev.js for an explanation about these Firebase "API keys." If I remember correctly, they are not actually used for authentication and are ok to have in public GitHub.

Perhaps that same message should be added to firebase.config.local.js and any other locations where a firebase API key is included.


Update README.md #1117

Hi @Neverm1ndEZ,
Please make the commit on the branch Neverm1ndEZ:main and it will refer on the pull request #1118.

Hi @ming-tsai
Done :)


[MINOR UPDATE]: Fix Hadoop 3 impersonation test errors during CI runs

[MINOR UPDATE]: Fix Hadoop 3 impersonation test errors during CI runs
Description
The following changes are made to resolve the "IO Running in secure mode, but config doesn't have a keytab" errors currently plaguing the Hadoop 3 impersonation tests when (and only when) they run in the GitHub CI [1].

Ensure that MiniDFS is using simple auth in BaseTestImpersonation.
Shut down MiniDFS cluster in TestInboundImpersonation.selectChainedView

These changes are sufficient to fix what I believe is a racy test harness set up / clean up bug that at this time only presents itself in the GitHub CI, and even then only with recent GitHub Runner images.

Example: https://github.com/apache/drill/actions/runs/5867741986/job/15909061405

Documentation
N/A
Testing
CI runs.

Thanks for this.  LGTM. +1

I'm not sure why the CI didn't kick off, perhaps because I had the wrong merge target branch set initially. I'll try to push up an empty commit to see if that gets it going.


use css native start and end

this definitely fixes #39, and might solve #25
ive naively just edited the file in node_modules and it seems to behave correctly, so ive copied the changes up here.

This can solve a lot and not only with text-align
when I first published this package logical properties were still relatively rare, need to confirm the browser's support is better today
https://caniuse.com/css-logical-props


Unity Made AssetStoreTools public

Unity made the asset store tools v2 package public. Might be worth putting in a pull request there to at least get their attention.
https://github.com/Unity-Technologies/com.unity.asset-store-tools

Even better – they already included the core ideas of Hybrid Packages, just hidden behind a flag :)
https://github.com/Unity-Technologies/com.unity.asset-store-tools/blob/main/com.unity.asset-store-tools/Editor/AssetStoreUploader/Scripts/PackageExporter.cs
See the notes here:
https://github.com/needle-tools/hybrid-packages#update-october-2022-unity-has-listened-and-added-hybrid-packages-support-to-their-asset-store-tools


Update QUICHE from 5b786dfeb to e87010ff9

https://github.com/google/quiche/compare/5b786dfeb..e87010ff9
$ git log 5b786dfeb..e87010ff9 --date=short --no-merges --format="%ad %al %s"
2021-12-06 quiche-dev Clarify OgHttp2Session header validation RST_STREAMs.
2021-12-06 quiche-dev Allows request trailers in oghttp2.
2021-12-06 bnc Remove bogus QUICHE_EXPORT_PRIVATE from QuicheLinkedHashMap.
2021-12-06 quiche-dev Enable OgHttp2Session to RST_STREAM overflow streams with unacknowledged MAX_CONCURRENT_STREAMS values.
2021-12-06 danzh Fix http2 chromium merge issue. No behavior change.
2021-12-03 quiche-dev Rejects the "101" status code as a client. Switching protocols is not allowed on HTTP/2 streams.
2021-12-03 rch Internal change
2021-12-03 bnc Use absl::Hash as QuicheLinkedHashMap default hasher.
2021-12-03 quiche-dev Adds support for sending and receiving the SETTINGS_HEADER_TABLE_SIZE setting in oghttp2.


[BUG] SDK is not encoding attestation properly

For schemas that have datatypes other than string, e.g. bytes32 values, the attestation payload is not encoded properly, which causes an error when trying to issue the attestation

It seems that this was in fact due to #556: trying to use the wrongly formatted Relationship Schema made the SDK fail to encode the payload.
In order to mitigate this issue, we'll improve the way we use the Schema string to encode the payload, to take into account the Schemas that are not "tuples" (without surrounding parenthesis).


Fix a crash with resize when the autoplay has gone away during timeout

We had a crash this morning that you can see below:

I think what's happening is that:

A resize occurs
This schedules a timeout to resume the autoplay, checking that it should do so before scheduling the timeout
Before the timeout's callback fires, the autoplay goes away, presumably because the user has moved on to a different page
The timeout fires and does not check again for the existence of the autoplay, which causes the crash

This just duplicates the check for needing to resume the autoplay within the callback. I debated about whether all three checks were needed but went for the maximal approach just to be sure... happy to tweak that if needed.

Thanks!

👍


[Linux] [Audio] ALVR is looking for inputs to use as outputs and outputs to use as inputs.

There are a number of bug reports related to audio in Linux, and it's historically only half-worked, even when the ALSA backend was implemented, but I think I've hit the root of the problem; exactly what the title says.
I have no idea how simple it will be to solve, but for the time being, I have created a workaround, that at minimum works for me. I am running EndeavourOS (Arch distro), Kernel 6.4.12-arch1-1, KDE Plasma X11, with Pipewire as my primary audio backend. I can't guarantee that it will work for you if you use a different Desktop Environment or PulseAudio instead of PipeWire.
1: Run the following commands to create virtual interfaces
pactl load-module module-null-sink media.class=Audio/Sink sink_name=ALVR channel_map=stereo
pactl load-module module-null-sink media.class=Audio/Source/Virtual sink_name=ALVR-mic channel_map=center
2: Set them as default inputs and outputs.
3: Set your ALVR audio settings as follows:
Backend: ALSA, Game Audio: Set By index:1, Microphone: Set Sink By index: 1 and Source By index: 2
4: Install and Open Qpwgraph
5: Connect headset and start SteamVR
6: Two blocks labelled "PipeWire ALSA [vrserver]" will appear in Qpwgraph, connected to the virtual audio devices. Disconnect them, and connect them to the other virtual audio device.
7: Repeat step 6 every time the headset reconnects.
Reference images attached.

I am aware that there is a workaround script already on the wiki, but it creates two virtual devices for both input and output, effectively ignoring/bypassing the issue, so I feel that it's still relevant that I post this.

Can confirm, I tried almost every combination of indexes, yet none of them landed on sink/source.
Guess I'll need to reconnect them manually each time too.
Arch linux + kde
Added audios the same way as OP

@Vamaka12 what script are you talking about ?

@alkeryn Here's how I got it working
P.S Game audio also works, but I use earbuds so I have it off

@Vamaka12 hey thanks, if that can prevent me from having to wire it up each time in the patchbay that's great !

I have been really struggling to get the wiki script working correctly. With game audio and mic set to pipewire as per my settings in the following screenshot, I get these results (Kubuntu, .appimage):

Default audio switches to the ALVR audio sink, but no desktop or game sound can be heard.
I hear an echo of my mic input in the headset coming from the mic sink
If I switch my default device to the ALVR mic sink, all audio will play on the headset, but I can still hear my mic

I'm frankly just getting lost between all the possible combinations of settings to make it do the following:

Capture mic input for games to use without it being echoed back
Play game audio in the headset

Now that I've had some time away from it (sorry for the venting earlier) I've managed to edit the audio-setup script in a way that works for me.
In the setup_mic() function I use pw-link to link the audio sink and unlink the mic source as you would in qpwgraph. Any earlier and it doesn't work, I added a constant called LISTEN_TO_MIC at the top of the file to control the unlink behaviour if I wanted.
function setup_mic() {
  if [[ $USE_HEADSET_MIC == 1 ]]; then
    echo "Creating microphone sink & source and linking alvr playback to it"
    # This sink is required so that it persistently auto-connects to alvr playback later
    pactl load-module module-null-sink sink_name=ALVR-MIC-Sink media.class=Audio/Sink | tee -a /run/user/1000/alvr-audio
    # This source is required so that any app can use it as microphone
    pactl load-module module-null-sink sink_name=ALVR-MIC-Source media.class=Audio/Source/Virtual | tee -a /run/user/1000/alvr-audio
    # We link them together
    pw-link ALVR-MIC-Sink:monitor_FL ALVR-MIC-Source:input_FL
    pw-link ALVR-MIC-Sink:monitor_FR ALVR-MIC-Source:input_FR
    # And we assign playback of pipewire alsa playback to created alvr sink
    pactl move-sink-input "$(get_playback_sink_input_id alsa_playback.vrserver)" "$(get_sink_id_by_name ALVR-MIC-Sink)"
    if [[ $LISTEN_TO_MIC == 0 ]]; then
      # Unlink from alsa capture to prevent mic playback
      pw-link -d ALVR-MIC-Source:capture_FL alsa_capture.vrserver:input_FL
      pw-link -d ALVR-MIC-Source:capture_FR alsa_capture.vrserver:input_FR
    fi
    pactl set-default-source ALVR-MIC-Source
    if [[ $USE_HEADSET_AUDIO == 1 ]]; then
      # Manually link to alsa capture because something earlier in the mic setup appears to unlink it
      pw-link ALVR-AUDIO-Sink:monitor_FL alsa_capture.vrserver:input_FL
      pw-link ALVR-AUDIO-Sink:monitor_FR alsa_capture.vrserver:input_FR
    fi
  fi
}

This gets me the result I wanted: Computer audio is automatically played through the headset and the mic remains a usable source without being played back. However, I can't rule out that I needed to do this because I configured it wrong elsewhere or am just not fully understanding the script's prior behaviour.

Similar issue on Ubuntu 23.10 with Pipewire.
This is the actual behavior (microphone goes in input, I can hear my PC microphone in the headset, and the game is played on the computer sound card speaker):

This is expected (did it manually, the game audio input should go in the the input of the headset):

@ConorVernon Do you have a fork with this to test? I am not sure to paste that and against what version

This is still an issue, not stale

@ConorVernon Thank you, this worked perfectly and put an end to my 12-hour debugging session (NixOS). I let ALVR download its audio-setup script using the UI, as specified in the wiki, then pasted your setup_mic function over it and it's working as I expect (game audio no longer plays out of PC speakers, mic no longer plays back in my ears).
For anyone else running the portable ALVR on NixOS through steam-run, be sure you also change the shebang in that audio-setup.sh script to #!/usr/bin/env bash.

I am trying to impliment this on Ubuntu but I really don't understand where to put the script


Update Issue - 88143885

default description
URL tested: http://ci.bsstag.com/welcome
Open URL on Browserstack

Property
Value

Browser
Chrome 78.0

Operating System
Windows 8.1

Resolution
1024x612

Screenshot Attached
Screenshot URL

Click here to reproduce the issue on Browserstack

Updated Screenshot Attached


Fix disparate score token types being used as one type

Server-side counterpart to https://github.com/ppy/osu/pull/24697. See description of said pull for rationale.

[x] Depends on https://github.com/ppy/osu-web/pull/10437 (merge & deployment) for correct operation
[x] Depends on https://github.com/ppy/osu/pull/24697 (merge & nuget package) to compile

Closing for now to keep things clean. See https://github.com/ppy/osu-infrastructure/issues/24 for rationale.


possible to enforce schema ?

I have a JSON field, and I want to make sure some keys are present.
Is it possible to have this schema enforced ? (when I serialize the field with this schema, if key doesnt exist, create with blank value)

I think the insert defaults option is what you want. Please look in the readme


Add proper package version comparison.

Fixes https://github.com/Microsoft/RTVS/issues/1413
I left the data type on the view model as a string, it could be changed to RPackageVersion if we like that better.  I remember it used to be a RPackageVersion instance and got changed to a string at some point, but I'm not sure why.

:+1:


[🐞] strange behaviour: Code(3): Only primitive and object literals can be serialized

Which component is affected?
Qwik Runtime
Describe the bug
Expecting not to get an Code(3) Only primitive and object literals can be serialized error
I am attaching qwik-city route example file:
It contains one input field and form validation hook.
In the file there are 5 commented examples of different combinations when I get or don't get mentioned error.
Combinations are

custom Input component
translation function hook
form validation hook,

Reproduction
https://stackblitz.com/edit/qwik-starter-av68qb?file=src%2Froutes%2Findex.tsx
Steps to reproduce
comment example with no error and uncomment other examples
System Info
System:
    OS: Linux 5.14 Ubuntu 22.04.2 LTS 22.04.2 LTS (Jammy Jellyfish)
    CPU: (8) x64 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
    Memory: 21.47 GB / 31.09 GB
    Container: Yes
    Shell: 5.1.16 - /bin/bash
  Binaries:
    Node: 18.12.1 - ~/.nvm/versions/node/v18.12.1/bin/node
    Yarn: 1.22.19 - ~/.nvm/versions/node/v18.12.1/bin/yarn
    npm: 8.19.2 - ~/.nvm/versions/node/v18.12.1/bin/npm
  Browsers:
    Brave Browser: <IP_ADDRESS>
    Chrome: 113.0.5672.126
  npmPackages:
    @builder.io/qwik: ^1.1.4 => 1.1.4
    @builder.io/qwik-city: ^1.1.4 => 1.1.4
    undici: ^5.22.1 => 5.22.1
    vite: ^4.3.9 => 4.3.9

Additional Information
*** Edit: new stackblitz with updated dependencies***
https://stackblitz.com/edit/qwik-starter-duqnd6?file=package.json,src%2Froutes%2Findex.tsx

Additional concise reproduction: https://stackblitz.com/edit/qwik-starter-iwsagf?file=src%2Froutes%2Findex.tsx

Tried a couple of things while debugging:

removing export in export const useFn = here https://stackblitz.com/edit/qwik-starter-iwsagf?file=src%2Froutes%2Findex.tsx fixes the issue. I am guessing Optimizer thinks that this is an exported variable
wrapping with noSerialize in const fn = noSerialize(useFn()); in the same example, also works
exporting an object literal like the following works:

export const utilities = {
  useFn: () => (name: string) => name,
}

// reuse as
const fn = utilities.test()

I have a PR incoming, that skips serialization for exported functions that return another function

@mhevery, please, is it possible to have an official explanation of this issue? Is this a bug?

If it's a bug, is a fix possible?
If it's not a bug, what are we doing wrong with using functions that return functions directly in props? and why is the error raised only in some unpredictable cases?

It looks like the Optimizer is trying to serialize the function (when in reality we are passing the result of the function as props, and it shouldn't be necessary). Furthermore, if you look at the compiled code, you see that it is wrapped in a Signal as Immutable, as I analyzed in this other issue: https://github.com/BuilderIO/qwik/issues/4038
Thanks!

The issue is useTranslate this:
export const useTranslate = () => {
  const t = (msg: string) => {
    return msg;
  };
  return t;
};

export default component$(() => {
  const t = useTranslate();
  return
{t('Enter your email')}
;
});

The problem is that useTraslate returns a naked function t. Under some circumstances, the system needs to serialize t and it can't because it is a naked function. (Yes the error could be better..)
     <input
        name="email"
        type="email"
        value={v.form.data.email}
        onInput$={v.change$}
        onChange$={v.touch$}
        autoComplete="email"
        placeholder={t('Enter your email')}
        required
      />

In the above case t does not need to be serialized, as it <input> is part of the component which creates the function in the first place.
      <Input
        name="email"
        type="email"
        value={v.form.data.email}
        onInput$={v.change$}
        onBlur$={v.touch$}
        autoComplete="email"
        placeholder={t('Enter your email')}
        required
      />

In the above case, <Input> is a component. This means that <Input> can wake up independently from the parent component. If <Input> wakes up, it needs to be able to know its props.
So why do you need to know the t in that case (why not just the value of t). Well because at compile, it is not possible to know if the input is value (as in this case) or a signal. Therefore system serializes it just in case it is a signal.. serialization fails because t is not wrapped in $().
Workaround:
export default component$(() => {
  const t = useTranslate();
  // ...
  const placeholder = t('Enter your email'); // read value here, outside the JSX.
  return (

      {(() => {debugger;})()}
      <Input
        name="email"
        type="email"
        value={v.form.data.email}
        onInput$={v.change$}
        onBlur$={v.touch$}
        autoComplete="email"
        placeholder={placeholder} // <= now it's clear it is not a signal, so we serialize the value.
        required
      />
};

@mhevery Thanks so much for your explanation! Personally I agree with your workaround, and it's what I've been suggesting to do in my library for a while now.
But custom hooks that return pure functions are widely used by developers (not just i18n libraries...).
So I wonder: couldn't we instruct the Optimizer when it encounters a function in props (that is not a QRL) to make it say: "Hey, I don't know anything about you! So I'll treat you like a function that belongs to the global scope, and I'll put you in mutable props!"
I don't know the Optimizer well enough to modify it, but I tried to simulate what would happen if it were considered mutable. To do this I simply renamed the use* function to make* function:
https://stackblitz.com/edit/qwik-starter-6rtqhj?file=src%2Froutes%2Findex.tsx
Everything seems to work: both when the state of the parent component changes and when the state of the child component changes.
Looking at the compiled code, instead of:
  const count = useSignal(0);
  const myFn = useFn();
  return /* @__PURE__ */ _jsxQ("div", null, null, [
    /* @__PURE__ */ _jsxC(MyComponent, {
      get val() {
        return myFn(count.value);
      },
      [_IMMUTABLE]: {
        val: _fnSignal((p0, p1) => p1(p0.value), [
          count,
          myFn
        ], "p1(p0.value)")
      }
    }, 3, "H1_1"),

we have:
  const count = useSignal(0);
  const myFn = makeFn();
  return /* @__PURE__ */ _jsxQ("div", null, null, [
    /* @__PURE__ */ _jsxC(MyComponent, {
      val: myFn(count.value)
    }, 3, "H1_1"),

Would there be some downside or side effect that I am unable to see?
Thanks again.

So I wonder: couldn't we instruct the Optimizer when it encounters a function in props (that is not a QRL) to make it say: "Hey, I don't know anything about you! So I'll treat you like a function that belongs to the global scope, and I'll put you in mutable props!"

That would be a very surprising behavior and would cause issues.
Why not just have the function be global to begin with? then it should just work...

Hi, Yes the workaround was known and also already forgotten since the opening of this issue. Maybe sooner since I did not list it. This was the reason it was not acceptable to me. It is something you must know. But ok.


GSD Request

--- GSD JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from  to before v5.16.8",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=e09cf398e8c6db69c620b6d8073abc4377a07af5"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "e09cf398e8c6db69c620b6d8073abc4377a07af5",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "ASoC: ops: Reject out of bounds values in snd_soc_put_xr_sx()\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v5.16.8 by commit e09cf398e8c6db69c620b6d8073abc4377a07af5. For more details please see the references link."
}
--- GSD JSON ---

This issue has been assigned GSD-2022-1000653


Remove two deliverables from application

Xcavate

We are building a real estate centric lending and asset minting protocol.

Team Name: Xcavate
Payment Address: 5E28NSFGwYB9C39bYdRAQ79UKRsM6shxkJr3LG4hehycwfJc
Total Costs: $8500 USDT (Polkadot - Statemint)
Level: 1

Project Overview
Due to a combination of increased population and changing housing needs, there is global housing crisis. According to the UN, the global population is set to reach over 11.2 billion by the year 2100, therefore 2 billion new homes are required in the next 80 years. 20% of all housing is built by small to medium sized real estate developers but access to finance through traditional banks and other financial institutions is complex, time consuming and expensive.
Xcavate is looking to solve this issue by developing a completely decentralised lending and NFT protocol governed by a DAO to help fund the building of real world real estate assets, as well as transact and manage fractions of each property as a route to a global real estate investor market. Our goal is to create a Decentralised Autonomous Organisation (DAO), which has a core Fellowship of real estate developers, investors and blockchain developers accountable to its wider community, so more houses can be built and invested in to help reach the growing demand.
Overview
Xcavate will be a first-of-its-kind real-world land & property NFT platform that collateralises real world parcels of land to finance real estate development.
Xcavate facilitates digitising land and/or property title deeds through minting and bundling of NFTs, which are then linked to verifiable digital identities (DIDs) approved by government entities.
Xcavate is an ecosystem that allows real-world property developers access to finance parcels of physical land with planning permission for development. Once the land is at the final development stage, the developer will create NFTs for the individual properties to be sold/managed by a peer-to-peer marketplace (property owners, investors, trusts etc.).
The system will significantly reduce the time from real estate planning permission to build start. By simplifying the finance application process and speeding up the release of funds to the developer. Xcavate not only provides real-world property developers with a way to build quicker but, as a result, enables a more significant number of much-needed houses to be delivered to market. It also provides liquidity to static real-world assets at every stage of the property development process in a fair and risk-averse way. It will enable the real estate to be onboarded cleanly and efficiently, opening up opportunities throughout the broader Dotsama ecosystem.
Project Details
We will initially build a POC of the real estate developer loan process to prove the concept. Building a simple polkadot.js wallet that allows verification of identity and creation of DIDS (through the KILT protocol). Once land ownership and build value has been identified (using Oracles) then the LAND NFT can be minted and placed in a multi-sig wallet along with the full loan amount (from the community loan pool). Each build tranche of money will be delivered to the real estate developer wallet, once real estate build evidence has been established and verified.

Xcavate will adapt and build multiple Pallets to execute the functionalities. We will use the KILT SDK as well as the substrate framework and primary language Rust to create the pallets on the Polkadot ecosystem.
Token Pallet
Decentralised Identity Document pallet
User Management pallet
Loan Management pallet
Transaction management pallet
Staking pallet
Verification pallet
This Architecture diagram shows the visual representation that maps out the physical implementation for components in the Polkadot ecosystem and how the scalability of the platform works. The diagram represents Microservices we are using to execute the functionality. API gateway will split the API calls to the respective microservices. We are using an s3 bucket to store the media files. We are using pallets to execute the functions on the Polkadot ecosystem.

Token:
XCAV - Platforms Native Token to launch a para chain and participate in a crowd loan/slot auction. XCAV tokens are used to stake within the platform. We will create these tokens with the Transfer, Mint, Burn, Approve, and Allowance functions.
Liquidity Pool:
Xcavate creates a liquidity pool to store staked tokens, staked tokens will be queued and utilized for each loan application. XCAV tokens are swapped as GBPT through XCM and deposited on the Central Loan pool.
Central Loan Pool:
Xcavate Creates a central loan pool to manage Loan amounts and Loan repayment. The central lending pool will act as the heart of the platform to map all the transactions.
Technology Stack

React.js
Node.js
Express.js
Rust
Substrate Framework
Polkadot

Third-Party

Kilt – SDK
Chainlink
AWS

Ecosystem Fit
After many months of research, we initially met on a zoom with Ingo from Kilt, discussing our idea and talking through how the Kilt chain can be incorporated into the Xcavate system. A few weeks later, we contacted Acala and met with Robinson, who was very helpful and enthusiastic about us being involved in the ecosystem and our potential partnership. We also reached Centrifuge and spent many weeks looking through their docs with the initial idea of creating a dApp on their chain, but as there were some striking differences in how their chain operated, it was apparent that was not going to be the best fit for our project. Going forward, however, once the real estate has been built, there will be opportunities for us to introduce Centrifuge.
We feel this is a great way to bring land & Property assets into the digital ecosystem to interact with the following potential partners:
Kilt (Identity & wallet)
This is a crucial part of the initial process to verify; Real Estate Director, Company & Title Deed and create DID’s, which will be held in a polkadot.js wallet and used throughout the process.
Statemint / Acala
There are many stages of financing that will involve aUSD / USDT / GDPT… from the initial funding pool, a liquidity pool, as well as the need to exchange the locked loan value for each project in GBP stable coins (as our initial market is based in the UK).
CRUST
Our POC will use AWS to prove the concept, however going forward we will look to host our dApp and all the land and property related documents on the Crust network.
Subwallet
Integrate DID's and Real Estae NFTs in to the their wallet to improve the UI/UX
Team :busts_in_silhouette:
Team members

Richard Houldsworth – CTO
Alex Ward – COO
Ganish Oli - Substrate Developer
Rene Hürter - Substrate Developer
Neeraj Choubisa - Full Stack Developer
Victor Chukwonoso - UI/UX Designer

Contact

Contact Name: Richard Houldsworth
Contact Email<EMAIL_ADDRESS>Website: xcavate.io

Legal Structure

H & W Investments Limited
17 College Road, Cheshunt EN8 9LS, United Kingdom

Team's experience
Richard Houldsworth – 10 years in web 2.0 dev space – serial Entrepreneur
Alex Ward – 25 years in the global property market – serial Entrepreneur
Ganish Oli - ink! smart contract developer and substrate blockchain developer.
Rene Hürter - I am currently studying to become a blockchain developer. Alchemy University Ethereum Bootcamp 11/2022. Scaling Ethereum 2023 Hackathon 11/03/2023. Consensus 2023 Hackathon (Web3athon 2023) 17/04/2023.
Neeraj Choubisa - A Passionate Full Stack Blockchain Ethereum Based Web Developer, Third-Year student at Indian Institute of Information Technology, Dharwad
Team Code Repos
https://github.com/xcavateblockchain
https://github.com/xcavate2022
https://github.com/ganesh1233456
https://github.com/Kali-Decoder
https://github.com/RecrafterH
Team LinkedIn Profiles
https://www.linkedin.com/in/richard-houldsworth/
https://www.linkedin.com/in/alex-ward-2350a036/
https://www.linkedin.com/in/ganesh-oli-9285a4163/
https://www.linkedin.com/in/neeraj-choubisa-a4952b202/
https://www.linkedin.com/in/rené-hürter-36084b249
Development Status :open_book:
We have been heavily involved in learning all things associated with the Polkadot & Kusama Ecosystem. This has been coupled with the idea of bringing land and property from its current state into the web3 ecosystem. We have been meeting with top-level industry leads, government officials and developers.
Robin Ejsmond-Frey and Nico Morgan from Parity have been a tremendous help by supporting us with information about the W3F grant application process and recommendations to attend Hackathons and the Polkadot Decoded Event London. As well as as number of forums to help our substrate development knowledge.
We have been taking time to play with Substrate to form initial local nodes. We feel we are now ready to build the initial POC for this project in the Rococco test environmenment.
Development Roadmap :nut_and_bolt:
Overview

Total Estimated Duration: 2 months
Full-Time Equivalent (FTE):  4
Total Costs: $10000 USDT

Milestone 1 — Initial POC of lending protocol

Estimated Duration: 2 months
FTE:  4
Costs: $10000 USDT

We will build on the excellent work we have achieved developing the Real Estate NFT marketplace for the hackerearth.com hackerthon.
In the first milestone, the features for the PoC will be implemented and tested by limited users. We will adapt FRAME pallets to create a unique structure of a central community loan pool that acts as a risk reducer to allow individual loan stakers to lock and unlock native XCAV coins quickly and easily, rather than being committed to the full term of a particular loan. This will provide an attractive low risk investment opportunity and increase community confidence in the network while eliminating any delay in providing the funds to the real estate development project, once all the necessary checks have been completed. This loan pool structure could be applied to many different chains in future projects. The execution of various stages of the dApp specific logic will built using ink! smart contracts.

Number
Deliverables
Specification

0a.
License
Apache 2.0

0b.
Documentation
The documentation will be provided to show the whole architecture of the Xcavate Network.

0c.
Testing and Testing Guide
The testing guide will be provided to test each component.

0d.
VS Code Instructions
We have struggled to create docker images and a container, which allows interaction between the frontend, backend & node however VS code is working as expected.

0e.
Tutorial
We will write a tutorial about how to use Xcavate Network.

0f.
Article
We will write an article published on media channels.

1
Xcavate Node Repo
We will create a customized chain node with Substrate 2.0 Framework.

2
Xcavate Loan App Repo
All smart contracts will be written in Ink! to handle all the on chain runtime events related pallet functions such as; 1) Assess loan application criteria 2) Creation and management of multisig wallet 3) Minting and transfer of LAND NFTs 4) Defining and executing the loan APR structure 5) Monitor and execute real estate build stage checks 5) Deliver tranches of loan amounts to wallets 6) Manage the loan repayment and NFT transfer.

3.
Loan management pallet
* Manage loan application ** Land details' ** Registration * Manage loan interest percentage ** Based on land and experience * Approve/Reject request

4.
Staking pallet
* User can stake native token * Calculate APR * Distribute payouts

5.
Verification pallet
* We need to remove this deliverable because it is reliant on the Acurast Oracle Pallet which is struggling due to Substrate dependency issues

6.
DAO
The PoC will have a basic voting structure to ensure rewards can be given to the real estate build stage checkers (As we progress in to the MVP stage this will be expanded to form a full governance structure).

7.
Decentralized Developer Loan dApp / Front End Repo
We are struggling to interact through the frontend dApp so wish to remove this as a deliverable, however interacting through polkadot.js is fine.

Future Plans
We are talking to Subwallet about integrating the KILT protocol DIDs in to their wallet for a smoother and simpler user experience. Once we have built the initial POC then on to the MVP and GTM. We have already started the white paper as well as developed a pitch deck to demonstrate the potential of the system to; investors, partners and eventually XCAV coin holders. We have started a social media campaign in order to build a community now and through the dApp build & testing stages.
Additional Information :heavy_plus_sign:
We will be attending the 2023 Polkadot Decoded event. We are keen to network and expand our partnerships across the Dotsama Ecosystem, while helping to build much needed real estate investment opportunities to a global population.

I have read and hereby sign the Contributor License Agreement.

Hi David,
Sorry - not sure why its not come through on the PR but I removed the Verification Pallet and the Frontend deliverable plus tweaked the DAO deliverable and the Docker deliverables.
I thought I just needed to amend the original application but I guess that’s not the case.
Can you please advise the best way to proceed?
Best Regards,
Richard

On 24 Sep 2023, at 12:46, David Hawig @.***> wrote:
@Noc2 requested changes on this pull request.
Thanks for the PR. However, at the moment, you are not updating the milestone tables that specify the deliverables. You are just adding two people to the original application. Is this correct?
—
Reply to this email directly, view it on GitHub https://github.com/w3f/Grants-Program/pull/1995#pullrequestreview-1641041411, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2OSX7ENZUJF4MGRYER5P73X4AMTFANCNFSM6AAAAAA5DDNYBM.
You are receiving this because you authored the thread.

It's correct. You need to change the original application. But currently, you are not updating the things that you mentioned; see https://github.com/w3f/Grants-Program/pull/1995/files

Apologies - is it better now?
Richard J Houldsworth
m 07798 666 710
www.xcavate.io
CONFIDENTIALITY: This email and its attachments are confidential to the intended recipient only. They may not be used by, disclosed to or copied in any way to anyone other than the intended recipient. If this email is received in error, please contact @.***
Disclaimer STRICTLY CONFIDENTIAL The contents of this email and any attachments are confidential and intended solely for the organisation or individual to whom it is addressed. If you are not the intended recipient, you must not copy, print, forward, distribute or disseminate the information, or take any action in reliance of it. If you have received this message in error, do not open any attachment but please notify the sender above and delete this email from your system.

On 24 Sep 2023, at 18:48, David Hawig @.***> wrote:
It's correct. You need to change the original application. But currently, you are not updating the things that you mentioned; see https://github.com/w3f/Grants-Program/pull/1995/files https://github.com/w3f/Grants-Program/pull/1995/files
—
Reply to this email directly, view it on GitHub https://github.com/w3f/Grants-Program/pull/1995#issuecomment-1732629633, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2OSX7DQFXQHIWGNCRQAT5TX4BW77ANCNFSM6AAAAAA5DDNYBM.
You are receiving this because you authored the thread.

See https://github.com/w3f/Grants-Program/pull/1995/files. You still haven't changed it. Also, you need to commit it here. The commit will show up between our discussions here, see for example, b4f774f above.

So sorry - I think I’ve done it now
Please check…. https://github.com/w3f/Grants-Program/pull/1995/commits/23df39ba2971f7612c46a14223f8eda67f67df1b https://github.com/w3f/Grants-Program/pull/1995/commits/23df39ba2971f7612c46a14223f8eda67f67df1b
Richard J Houldsworth
m 07798 666 710
www.xcavate.io
CONFIDENTIALITY: This email and its attachments are confidential to the intended recipient only. They may not be used by, disclosed to or copied in any way to anyone other than the intended recipient. If this email is received in error, please contact @.***
Disclaimer STRICTLY CONFIDENTIAL The contents of this email and any attachments are confidential and intended solely for the organisation or individual to whom it is addressed. If you are not the intended recipient, you must not copy, print, forward, distribute or disseminate the information, or take any action in reliance of it. If you have received this message in error, do not open any attachment but please notify the sender above and delete this email from your system.

On 25 Sep 2023, at 08:56, David Hawig @.***> wrote:
See https://github.com/w3f/Grants-Program/pull/1995/files https://github.com/w3f/Grants-Program/pull/1995/files. You still haven't changed it. Also, you need to commit it here. The commit will show up between our discussions here, see for example, b4f774f https://github.com/w3f/Grants-Program/pull/1995/commits/b4f774fe13bafef13673be46fe5c659531bb4b91 above.
—
Reply to this email directly, view it on GitHub https://github.com/w3f/Grants-Program/pull/1995#issuecomment-1733116217, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2OSX7AUZ6OIDPCEAYRNLU3X4E2MBANCNFSM6AAAAAA5DDNYBM.
You are receiving this because you authored the thread.

Thanks for comments… Ok now?

@xcavate2022 the document is okay in my opinion. The committee will take a look and give their opinion as well. I think would be nice to adjust the description of the PR to explain the reasons why this PR is open and not to have a copy of the application document.

Thanks Diogo… I think David has merged the PR so I don’t believe I can add the description you mentioned now but hopefully the PR was self explanatory.
Let me know if there’s anything else we need to do.
Best Regards
Richard


Javascript - Update the API endpoint to accept parameters

Update API Endpoint
To make working with the data easier, I think it would be a good idea to model the data using a class. That way we'll get some auto-complete in VSCode.

Add  parameters to the API endpoint
create a model for the data passed with the API call.

End point is accepting params.
Next I'll work on the fetch request in the client.

Completed


Black area generated above keyboard within company information form

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

Action Performed:

Open any workspace > Reimburse expenses > Connect bank account > Connect Manually >
Enter Routing Number: 123123123
Enter Account Number:<PHONE_NUMBER>331111
Click Continue, it will show Company Information form.
Fill up the Company information form one by one field, it will generate black area above keyboard in iOS Safari and Chrome as shown in video.

Expected Result:
Black area should not generated above keyboard.
Actual Result:
It will show black area above keyboard as we fill up the form.
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] iOS / Safari and Chrome

Version Number: 1.2.63-0
Reproducible in staging?: y
Reproducible in production?: Could not check
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:
https://user-images.githubusercontent.com/43996225/215895310-0602011e-c8a8-4629-9538-d1f5b554eaf4.mov
https://user-images.githubusercontent.com/43996225/215895587-d0a9b142-f224-4537-bc78-f679c3377dcd.MP4
Expensify/Expensify Issue URL:
Issue reported by: @PrashantMangukiya
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1675181285781359
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~012f40a9a8f065b869
Upwork Job ID:<PHONE_NUMBER>237179392
Last Price Increase: 2023-02-01

Thanks @ArekChr! Looking forward to your proposed solution.

Your issue is in this file
{maxHeight: this.props.windowHeight}]}
https://github.com/Expensify/App/blob/93854081336980a19b02138a271fead29b37e5d9/src/components/ScreenWrapper/index.js

Proposal

I think this is a regression from PR https://github.com/Expensify/App/pull/14392 & issue https://github.com/Expensify/App/issues/11463 whereby we are adding maxHeight to <ScreenWrapper>  to prevent the button from hiding but on Form pages, we dont really have the floating button which creates blank height to prevent that in all form page where every we used <ScreenWrapper> we need to set null height

Solution 1

Manually pass windowHeight={null} to  all <ScreenWrapper> used in all form pages (ReimbursementAccount) (all steps pages) and all pass null to pages that are affected (will need to check affected pages as current GH is only for company steps)

Example
+    <ScreenWrapper windowHeight={null} includeSafeAreaPaddingBottom={false}>

Solution 2

Define new props example: allowFloatButton to <ScreenWrapper> component by default we should be kept as false and pass allowFloatButton={true} on those affected pages which have the bottom button for example this 2 PR we have 2 different pages whereby we should pass true https://github.com/Expensify/App/issues/11463 ,https://github.com/Expensify/App/issues/14161

We also need to check which other pages we need to have a floating button

Result
https://user-images.githubusercontent.com/47522946/216273872-b12bde12-eeb7-4dd5-9a3a-ccf84a2fa2b3.mp4

Would it require removing the MaxHeight property or is the regression in the upstream repo update?

@rawalyogendra Would you be able to look into this regression fix? 🙇

@mountiny yes, I am looking into this.

Yeah, removing MaxHeight will fix it. or we have to be intelligent while setting its value. When keyboard opens max height will reduce to a small viewport.

@parasharrajat yes, I agree, I was unaware that ScreenWrapper was being used in this way. I am looking for a fix. I will update you guys.
CC: @flodnv @mananjadhav keeping you guys in loop here

Problem:
I have also discussed this a few weeks back here https://github.com/Expensify/App/issues/13491#issuecomment-1397885379.
In WebKit based mobile browsers, whenever there is an input focused on a webpage which below ~50% height of the Viewport, the browsers scroll the webpage even when the page should not scroll. Relevant Bug

Safari Animation

Recently, Chrome Developers also made some changes to how the Layout Viewport behaves when the on-screen keyboard (OSK) gets shown.  This is causing similar issues in mWeb (Android) as well.
From the Blog Post:

As of Chrome 108, Chrome on Android will adjust its viewport resize behavior to no longer resize the Layout Viewport when the on-screen keyboard is shown.
This will align the behavior of Chrome on Android with that of Chrome on iOS, iPadOS, Windows, and CrOS, Safari on iOS and iPadOS, and Edge on iOS, iPadOS, and Windows.

So there are 2 main problems here in both Android and iOS (mWeb):

The Page is scrollable, even when it should not, causing blank spaces at the bottom.
The page is scrolled when input is focused, creating empty spaces due to first reason.

Solution:
I have pushed my changes here https://github.com/rawalyogendra/App/tree/ios-scroll-fix
1. mWeb(Android)
From the Google Developer's blog post:

To opt back in to the “old” Chrome on Android behavior, set the viewport meta tag to this:
<meta name="viewport" content="width=device-width, initial-scale=1.0, interactive-widget=resizes-content">

We can add interactive-widget=resizes-content in the viewport meta tag which will fix all the issues related to mWeb(Android).

mWeb Android Fix
https://user-images.githubusercontent.com/7548730/217104784-cb88d865-acf8-4a16-a135-b8974fd39d76.mp4

2. mWeb(iOS)
Even if we revert the changes from this PR https://github.com/Expensify/App/pull/14392, these issues still exist in the application. Here is a screen recording after reverting the change.

mWeb iOS Issues
https://user-images.githubusercontent.com/7548730/217105329-084c86f8-324a-4b62-95f8-6a4eb94241f7.mov

I could not find a straight forward way to fix these issues. So I looked around for other projects where these issues are already addressed. I came across Adobe's react-spectrum
<EMAIL_ADDRESS>To fix the auto scrolling issue, they have used a hack where an <input/> element is translated to the top of the page when focused, then it is again translated back to its original position.
Inspired by this, I have tried to manipulate the opacity of the <input/>.
https://github.com/Expensify/App/blob/5b50a42896a1e4eb901737396af106c4d6ff0fa6/web/index.html#L52-L60
This surprisingly fixes the auto scrolling issue.
I have also disabled overscroll-behaviour and touch-action in body tag, as we do not want the body to scroll.
https://github.com/Expensify/App/blob/5b50a42896a1e4eb901737396af106c4d6ff0fa6/web/index.html#L29-L32

mWeb iOS Fix
https://user-images.githubusercontent.com/7548730/217112698-63078519-057c-4856-8c61-364126ee375c.mov

This fixes the scrolling issue in some cases however it is still scrollable, if the underlying content is scrollable, which I think is out of scope for this issue.
At last, I want to say that the recent changes may have highlighted existing problems in the application, but these issues were not introduced by the changes itself. They were already present beforehand.

@parasharrajat @mananjadhav what do you think of @rawalyogendra's proposal? It looks good to me. Why don't we move forward with it and take it from there?

The PR was reviewed by @mananjadhav. I commented on the PR regarding another issue.

@sobitneupane can you please test my fix from here on mWeb(Android & iOS).
Maybe I was not clear in my comment above, but I have a solution for this issue.

@parasharrajat I am sorry for the misunderstanding, but I was not asking for any additional payment.
I was just stating the root cause of the problem and how it may not be related to the original PR.

📣 @mananjadhav You have been assigned to this job by @puneetlath!
Please apply to this job in Upwork and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻
Keep in mind: Code of Conduct | Contributing 📖

Ok I'm assigning @mananjadhav as the C+ since they were the C+ on the original which caused the regression. @mananjadhav what do you think of the proposal?

@rawalyogendra Your changes look fine to me. But do they cover all the regressions? including this one ?
cc - @flodnv @puneetlath

@mananjadhav yes the screen is not scrolled when input is focused

Go for it @rawalyogendra 🙇

📣 @rawalyogendra You have been assigned to this job by @flodnv!
Please apply to this job in Upwork and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻
Keep in mind: Code of Conduct | Contributing 📖

@flodnv I have opened the PR. You can check it out

Linked PR was just merged.

@puneetlath, @mananjadhav, @rawalyogendra Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

PR was merged today.

Reviewing label has been removed, please complete the "BugZero Checklist".

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.2.75-0 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/15100

If no regressions arise, payment will be issued on 2023-03-01. :confetti_ball:
After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

[ ] External issue reporter
[ ] Contributor that fixed the issue
[ ] Contributor+ that helped on the issue and/or PR

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

Merged PR within 3 business days of assignment - 50% bonus
Merged PR more than 9 business days after assignment - 50% penalty

📣 @MelvinBot! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.

Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ] [@mananjadhav / @puneetlath] The PR that introduced the bug has been identified. Link to the PR:
[ ] [@mananjadhav / @puneetlath] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[ ] [@mananjadhav / @puneetlath] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ] [@rawalyogendra] Propose regression test steps to ensure the same bug will not reach production again.
[ ] [@puneetlath] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

@rawalyogendra Can you please update with the Regression Test Proposal here?

BUG: Black area generated above keyboard within company information form

Proposed Test Steps:

Open a workspace > Reimburse expenses > Connect bank account > Connect Manually
Enter Routing Number: 123123123
Enter Account Number:<PHONE_NUMBER>331111
Click on Continue, it shows Company Information form.
Fill up the Company information form.
Verified that it did not generate black area above keyboard in iOS Safari and Chrome.

BUG: The Close account button is cut off and has extra padding

Proposed Test Steps:

Go to staging.new.expensify.com
Login with any account
Navigate to Settings > Security
Click on "Close Account"
Enter the email in the input and open keyboard

Do we agree :+1: or :-1:

📣 @rawalyogendra! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.

Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~016922834caeca0d87

@puneetlath this has the title for payment, but there won't be any payout for this one. Instead it should be #11463.

Yes, makes sense. Thanks for reminding me. I'm going to go ahead and close this out in favor of that issue.

@puneetlath reporting bonus not issued for this. As I reported this issue.

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01c718889ed7821f82

⚠ Invalid email. Please make sure to create an Expensify account with this email first here.

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01c718889ed7821f82

✅ Contributor details stored successfully. Thank you for contributing to Expensify!

Thank you @puneetlath Applied for the job.

Reporting bonus paid. Closing again.

Received. Thank you @puneetlath

We are looking for another fix to this issue as the approved proposal caused a regression https://github.com/Expensify/App/issues/16082#issuecomment-1486667089.


Extract ReadsSource from DataflowReadsPipeline into a public class in the engine

This class is now needed by other pipelines, so let's make it generally available
in the engine.

For @lbergelson to review please

Coverage decreased (-0.0%) to 71.58% when pulling 4d258ef5cdfbbc9b0017d4e3ef8de69c99301c43 on dr_extract_readssource_class into ea2fbfeaff5680204e67cc60fb7d910216857b1f on master.

This should have tests for what we can test.  I'll make the changes.

Adding tests separately since this is blocking @droazen


Update README_WINDOWS.md

Please check and consider if it is meaningful.

It will help not so into code people.
And since it is for Windows 10/11. "C:/" is the starting right.

Please check whether it's right.

Thanks!  I updated to add extra note.

e8b97323804b21e65093d1beb4775c5a51857615


Refactor parts of log4j-core-test to migrate to JUnit5

Introduction
We are from Neighbourhoodie, the implementation partner of the STF Bug Resilience Program. This work is part of our agreed Milestone 1. Upgrade from JUnit 4 to JUnit 5. This PR migrates the tests located in log4j-core-test to JUnit5.c
Please note the log4j-core-test module contains over 150 files and this PR updates the tests for 40 of them. Further PRs will be made to update the rest of the tests.
Checklist

[x] Base your changes on 2.x branch if you are targeting Log4j 2; use main otherwise
[x] ./mvnw verify succeeds (if it fails due to code formatting issues reported by Spotless, simply run ./mvnw spotless:apply and retry)
[ ] Non-trivial changes contain an entry file in the src/changelog/.2.x.x directory
[ ] Tests for the changes are provided
[x] Commits are signed (optional, but highly recommended)

Please note the log4j-core-test module contains over 150 files and this PR updates the tests for 40 of them. Further PRs will be made to update the rest of the tests.

@ninetteadhikari, @hulkoba, thanks so much! :heart_eyes: Would it be possible to keep all JUnit 4-to-5 migration changes in this PR for log4j-core-test instead of creating more follow-up PRs?

Please note the log4j-core-test module contains over 150 files and this PR updates the tests for 40 of them. Further PRs will be made to update the rest of the tests.

@ninetteadhikari, @hulkoba, thanks so much! 😍 Would it be possible to keep all JUnit 4-to-5 migration changes in this PR for log4j-core-test instead of creating more follow-up PRs?

sure thing:) let me then convert this PR to draft and open it for review later once we have migrated all the files.

hi @vy we had a quick question, we are trying to write new extensions to replace some of the old ones and getting some errors. For example we created JndiExtension to replace the JndiRule however the build fails with this error:
Failed to execute goal biz.aQute.bnd:bnd-baseline-maven-plugin:7.0.0:baseline (check-api-compat) on project log4j-core-test: An error occurred while calculating the baseline: Baseline problems detected. See the report in /home/runner/work/logging-log4j2/logging-log4j2/log4j-core-test/target/baseline/log4j-core-test-2.25.0-SNAPSHOT.txt.

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal biz.aQute.bnd:bnd-baseline-maven-plugin:7.0.0:baseline (check-api-compat) on project log4j-core-test: An error occurred while calculating the baseline

do we have to add anything additional to make extensions work or make changes to the build? let us know thanks!

@ninetteadhikari, that is an API compatibility check failure – see Fixing API compatibility check failures
.

we created JndiExtension to replace the JndiRule however the build fails with this error:

@ninetteadhikari, this is a breaking change to log4j-core-test. Though we are not that strict about backward compatibility when it comes to utility classes in *-test modules. You'll probably need a @BaselineIgnore("2.24.1") in package-info.java of the associated package.

thanks so much for the response! we'll see if we can make it work:)

Hi @vy sorry to bug you again, we tried ignoring different versions but had no luck: @BaselineIgnore("2.24.0"), @BaselineIgnore("2.24.1"), @BaselineIgnore("2.25.0")
We are still getting the same build failure. To give you a bit of a context I pushed the extension change commit here and these are the build failures we are seeing. Please let us know if you have insights into this thanks!

@ninetteadhikari, I think your changes need to be sync'ed with 2.x. Could you try the following, please?

get fetch -p upstream (Assuming upstream points to the official apache/logging-log4j2 repository)
git rebase upstream/2.x
Edit log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/package-info.java, set the version to 2.25.0, commit your changes
Validate the fix: ./mvnw verify -DskipTests -pl :log4j-core-test
git push -f

(I was able to fix the issue locally, but since you did not give us rights to edit your PRs, I could not push them.)

This PR is now ready for review, thank you! 🙏
Please note that, even though LoggerSerializationTest is part of log4j-core-test, it was refactored in this other PR https://github.com/apache/logging-log4j2/pull/3218


Missing link to https://orientdb.com/orientdb-labs/ ?

OrientDB Version: 3.0 rc1
Java Version: 8
OS: windows 7
Expected behavior
How does one goes to https://orientdb.com/orientdb-labs/ ? The newly re-design web site provides no link?
Actual behavior
Steps to reproduce
Go to th web site and you will see no link to Labs

Hi @hrstoyanov
Thank you very much for reporting, we are fixing the problem now
Thanks
Luigi

hi @hrstoyanov,
This is now fixed, thanks for reporting.
Regards


Missing dependencies added, grafana version fixed to latest stable

Thanks for the PR. I've merged the changes manually pending maintainers approval.

Thanks!


Test fail on current develop branch

I checked out the current develop at c18114739420dbabbe64215d7a978e1fcb305c08 and did git submodule update.
I configured --enable-mpi --enable-debug --enable-clawpack CFLAGS="-Wall -O0 -g" and get on make check:
FAIL: applications/clawpack/acoustics/2d/radial/regressions.sh
FAIL: applications/clawpack/euler/2d/quadrants/regressions.sh
FAIL: applications/clawpack/shallow/2d/bump/regressions.sh

I am assuming the error is a segfault of some sort?

I can look at the testsuite.log, let me check.

We've added LIBS=-lgfortran to the configure line and used the latest develop of forestclaw. It works fine now!


CSS code not working in Forum

issue no:#1090
I had enchanced the Community Forum
@iamrahulmahato Kindly review it

@iamrahulmahato
Hi sir,
why I am getting these conflicts,and saying like can't resolve this in web editor.Will they effect my contribution?


FunctionPlot: Massive performance boosts for functions with restricted domains

Purpose:
#2156
Most of the performance benefit comes from removing the exception-based code (that's my bad, it was my idea in the first place). XMin and XMax are just gravy, and they also are potentially useful in and of themselves, if someone only wants to consider a function on a narrow domain, this is probably an easier way to restrict that domain then manually modifying the function.
double? Normalised_Function_F(double z)
{
    return 0 <= z && z <= 1 ? z : null;
}
var f = plt.AddFunction(Normalised_Function_F);

f.XMin = 0.3;
f.XMax = 0.7;

I would make a benchmark, but the difference is so stark that before this PR I didn't have the patience to wait for it to render (admittedly in debug mode), and after it's borderline instant


build-toos/aapt2 issue with gradle in android termux

If we use gradle build tools in termux (android) to build android apps,
android-sdk build-tools/<version>/aapt2 is unused
cause android gradle plugin (AGP) will auto download and use aapt2 from https://maven.google.com/web/m_index.html#com.android.tools.build:aapt2
and that will produce an error in termux
because downloaded file contains executable for linux and not compatible for termux
current solution:

use maven local repository in all build.gradle
convert all jar file in ~/.gradle/cache/modules-2/files-1/ to maven local repository format by using this script (without finalizedBy)
run gradle cacheToMavenLocal
replace executable aapt2 in .m2/repository/com/android/tools/build/aapt2/< version >/aapt2-< version >.jar (downloaded by AGP from here ) with aapt2 provided by termux
and rebuild gradle assembleDebug

please refer to build-app readme


Safe compare password (timing attack)

The time taken is a function of the length of the slices and is independent of the contents.

https://golang.org/pkg/crypto/subtle/#ConstantTimeCompare

Thanks for the PR, but please read https://github.com/gogits/gogs/blob/master/.github/PULL_REQUEST_TEMPLATE.md

There's no timing attack here. All an attacker can learn if you're using non constant-time == is that some hash of his password (which he doesn't even get to see) is different from the one stored at byte x.
However I too prefer to use constant time for every equals-check which includes some kind of crypto, just to always be on the right side. :)


Getting image

Hi, could I ask you a question about getting training data?
Where could I get the data: train2017 and val 2017 like below?
|   |-- MSCOCO
|   |   |-- images
|   |   |   |-- train2017
|   |   |   |-- val2017
|   |   |-- annotations
Thank you

https://cocodataset.org/#home

thank you


Email classification : ham and spam

I'm trying to determine how to define candidate classes for an toy problem on email classification (ham / spam). The email text content is stored as a some "input.tsv" file, much like the example file "articles.tsv" that's in the intro tutorials (spousal relationship extraction).
How do I build a candidate class that's appropriate to this problem?
Entity extraction is one element of the Snorkel API that isn't explained in much detail in the documentation or in the Mobilize Center videos. Hence my request. Please help.
PS: The "gold labels" in the "input.tsv" file are in the second column after the email content, separated by the tab space. Presumably this has to be extracted into a separate file, and then brought in?

We are in the middle of a big refactor for the code which we will release later this summer. The update should address this issue

To add a bit more detail: one of our main tutorials will be a ham/spam document classification problem, so that should give you a lot to work with.

Snorkel v0.9 was released today with exactly the tutorial you're looking for! For a quick overview of how to approach a spam classification problem like this with Snorkel, check out the "Getting Started" walkthrough: https://www.snorkel.org/get-started/. After that, there are three additional tutorials that go into greater detail on how to apply labeling functions, transformation functions, and slicing functions to improve performance further or give a clearer picture into your model's performance. If you have any thoughts after trying it out, let us know on the Snorkel community forum: https://spectrum.chat/snorkel?tab=posts.


Apparent error trying to learn identity function

When experimenting with CPM via the Python interface I've gotten some confusing results.
I tried with xor (with labels 0 and 1) and was getting values back in the assignments array not in the label set (eg 3, 4, 17, etc.) and these values changed when I added subclassifiers or sgd iterations.
Here is the simplest example, am I doing something wrong here? How could assignments always be 0 when the input labels were always 1?
In [31]: ds = cpm.Dataset(np.ones(10, dtype=np.float32).reshape(10, 1), np.ones(10, dtype=np.int32))
In [32]: clf = cpm.CPM(10)
In [33]: clf.fit(ds)
In [34]: clf.predict(ds)
Out[34]:
[array([ 1.4661082,  1.4661082,  1.4661082,  1.4661082,  1.4661082,
         1.4661082,  1.4661082,  1.4661082,  1.4661082,  1.4661082], dtype=float32),
 array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int32)]

Platform:
$ uname -a
14.1.0 Darwin Kernel Version 14.1.0: Thu Feb 26 19:26:47 PST 2015; root:xnu-2782.10.73~1/RELEASE_X86_64 x86_64
$ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.1.0
Thread model: posix

@travisbrady thank you for the question. The output of predict() is a bit confusing but everything looks OK in your example.
First, CPM only does binary classification. If you have multi-class data, you can select which class you want the CPM to detect by using the outer_label option of the constructor (defaults to 1). In your case, everything is binary indeed and it would be rightfully strange to have multi-class outputs.
If you are only interested in the prediction the model makes, you have to look at the first vector returned by predict(), the scores. These are the margins (+sign) of the model for the instances. When score > 0, the inferred class is outer_label. In your case, everything is fine, the model predicts all of the 10 instances as belonging to class 1.
The second, assignment array only makes sense for the CPM model. Internally, CPM works by maintaining k sub-classifiers. The assignments array tells you which sub-classifier was used for the prediction. This is useful when you want to understand the structure of the outer_label class, as each positive margin example gets associated with a single sub-classifier. You can think of it as an implicit clustering for that class. In your case, all of the examples belong to the same cluster 0, which also makes sense.

I'm closing this now, but you can always reopen it.

Thanks, Alex. This was very helpful.
I've begun some rough experimental OCaml bindings to CPM here: https://github.com/travisbrady/ocaml-cpm
I'm going to clean them up and then attempt some experiments.


server not responding to the function isAck()

if (message.isAck()) {
Serial.println("This is an ack from gateway");
}
in this case it is not clear for example relays ON or OFF.

@devicter Is this code from Node. If yes, MyController is not responsible for this issue.

Strangely, however, for example on Home Assistant
https://home-assistant.io/
this function works.
in this application, the button does not show that included unless the team came from the server.
and sketch as well (in the console shows that the server has confirmed the delivery package)
"This is an ack from gateway"

in fact of the "charm" of this function, you always know exactly what the relay is energized

@devicter for now, Ack not supported by MyController.

Ack is one of the (very little) missing but essential functions for MySensors. Any chance it will be added soon?

I am confused on Ack message with MySensors. Can some one explain how it's working with controller?
It says here
![image](https
s here
ack	>> The ack parameter has the following meaning: Outgoing: 0 = unacknowledged message, 1 = request ack from destination node, Incoming: 0 = normal message, 1 = this is an ack message

The "ack"  is sent as feedback from the controller or node as an acknowledgement of reception. The message which is sent as ack contains the same information as was sent.
Example use:  activating a switch in the controller sends the message. The controller than waits for acknowledgement before it actually changes the switch. If the acknowledgement is not received in due time, the controller can resend the message x times. If no acknowledgement at all an error can be generated.
Vice versa :when the controller receives a message with ack enabled it respondes with a copy of the message to indicate it has been received and processed.

@AWiseAd thank you for the explanation, I have few queries,

The "ack" is sent as feedback from the controller or node as an acknowledgement of reception. The message which is sent as ack contains the same information as was sent.
Example use: activating a switch in the controller sends the message. The controller than waits for acknowledgement before it actually changes the switch. If the acknowledgement is not received in due time, the controller can resend the message x times. If no acknowledgement at all an error can be generated.

In our current design, we are pushing all the messages to Message Queue before to send to gateway. This queue is used to avoid huge traffic and data loss. Once the message entered in to queue, there is no reference to track that specific message.

Vice versa :when the controller receives a message with ack enabled it respondes with a copy of the message to indicate it has been received and processed.

I fear that, this approach might create infinite loop, example: node updates switch status and sends info to controller(with ack=1 request). Controller updates and sent same duplicate message to node with ack=1. Now node might think that controller asks to update switch and requested ack. Message goes here and there for ever.
I might be wrong. I have to learn more with MySensors code about ack handling.

@jkandasa How I understand it... The "soft" Ack is handled by the MySensors protocol. If a message is send with Ack flag active, the node MySensors message handler will respond itself with an ack message set.
If an ack'ed messages comes in it can be interpreted as an acknowledgment and should not be interpreted as a "SET" messsage (so should not lead to a loop).
On the message queue..   I think a mechanism need to be found to have messages acknowledged.  The way it is implemented in Domoticz  (line 1263) is a way to do it, but I quess there a other/ better ways.
When programming a node you also have to take care of resending yourself: 1. send the message with ack enabled ; 2. check if ack comes in for that specific message ; 3. take action if (not) received, i.e. resend..
from the Serial protocol

@AWiseAd  Than you for the great explanation with example code.
Now I understand somehow. It looks like we have to wait for ack before to proceed new message. I will try to address same way mentioned in Domoticz. When we address like this MyController processing rate will be reduced hugely. So I am going to give an option for user enable/disable ack support.

+1

In OH2 Mysensors binding, When you send message with Ack, if there is no ack response, message wil be sent 5 times.
And after the sensors (like light switch) is falling back to last value. (but you can change how it works by seetings)

@jkandasa is there any news about this?
I love MyController, but I'm trying to control a relay and without an ack I cannot be sure if the payload arrived at the node.

@danielefrigo so far no timeline for this issue. We need to refactor complete messaging queue to activate ack.

Kindly have a look on SNAPSHOT version