YARN-11271. Upgrade JUnit from 4 to 5 in hadoop-yarn-server-timelineservice-hbase-common

Description of PR
Upgrade JUnit from 4 to 5 in hadoop-yarn-server-timelineservice-hbase-common
JIRA - YARN-11271
For code changes:

[X] Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
[ ] Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
1m 10s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+0 :ok:
detsecrets
0m  1s

detect-secrets was not available.

+0 :ok:
xmllint
0m  1s

xmllint was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

-1 :x:
pathlen
0m  0s
/results-pathlen.txt
The patch appears to contain 1 files with names longer than 240

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 5 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
41m 20s

trunk passed

+1 :green_heart:
compile
0m 37s

trunk passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
compile
0m 36s

trunk passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
checkstyle
0m 37s

trunk passed

+1 :green_heart:
mvnsite
0m 40s

trunk passed

+1 :green_heart:
javadoc
0m 47s

trunk passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javadoc
0m 34s

trunk passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
spotbugs
1m  4s

trunk passed

+1 :green_heart:
shadedclient
23m 57s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 24s

the patch passed

+1 :green_heart:
compile
0m 27s

the patch passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javac
0m 27s

the patch passed

+1 :green_heart:
compile
0m 25s

the patch passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
javac
0m 25s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m 18s

the patch passed

+1 :green_heart:
mvnsite
0m 25s

the patch passed

+1 :green_heart:
javadoc
0m 24s

the patch passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javadoc
0m 22s

the patch passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
spotbugs
0m 48s

the patch passed

+1 :green_heart:
shadedclient
23m  9s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
0m 41s

hadoop-yarn-server-timelineservice-hbase-common in the patch passed.

+1 :green_heart:
asflicense
0m 42s

The patch does not generate ASF License warnings.

101m 43s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4774/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/4774

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle

uname
Linux 74ce509f8422 4.15.0-191-generic #202-Ubuntu SMP Thu Aug 4 01:49:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / d53416dde86bd247c7d19a58b8846c720c602e56

Default Java
Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS> /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4774/1/testReport/

Max. process+thread count
614 (vs. ulimit of 5500)

modules
C: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice-hbase/hadoop-yarn-server-timelineservice-hbase-common U: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice-hbase/hadoop-yarn-server-timelineservice-hbase-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4774/1/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

pathlen is not changed in this PR. Its the same as old.

@aajisaka - Please help in reviewing the PR. Thanks.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
17m 28s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  1s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+0 :ok:
xmllint
0m  0s

xmllint was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

-1 :x:
pathlen
0m  0s
/results-pathlen.txt
The patch appears to contain 1 files with names longer than 240

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 5 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
38m 57s

trunk passed

+1 :green_heart:
compile
0m 38s

trunk passed with JDK Ubuntu-11.0.16+8-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
compile
0m 36s

trunk passed with JDK Private Build-1.8.0_342-8u342-b07-0ubuntu1~20.04-b07

+1 :green_heart:
checkstyle
0m 46s

trunk passed

+1 :green_heart:
mvnsite
0m 40s

trunk passed

+1 :green_heart:
javadoc
0m 52s

trunk passed with JDK Ubuntu-11.0.16+8-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
javadoc
0m 32s

trunk passed with JDK Private Build-1.8.0_342-8u342-b07-0ubuntu1~20.04-b07

+1 :green_heart:
spotbugs
0m 59s

trunk passed

+1 :green_heart:
shadedclient
20m 18s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 25s

the patch passed

+1 :green_heart:
compile
0m 29s

the patch passed with JDK Ubuntu-11.0.16+8-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
javac
0m 29s

the patch passed

+1 :green_heart:
compile
0m 26s

the patch passed with JDK Private Build-1.8.0_342-8u342-b07-0ubuntu1~20.04-b07

+1 :green_heart:
javac
0m 26s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m 18s

the patch passed

+1 :green_heart:
mvnsite
0m 26s

the patch passed

+1 :green_heart:
javadoc
0m 27s

the patch passed with JDK Ubuntu-11.0.16+8-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
javadoc
0m 24s

the patch passed with JDK Private Build-1.8.0_342-8u342-b07-0ubuntu1~20.04-b07

+1 :green_heart:
spotbugs
0m 52s

the patch passed

+1 :green_heart:
shadedclient
20m  5s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
0m 41s

hadoop-yarn-server-timelineservice-hbase-common in the patch passed.

+1 :green_heart:
asflicense
0m 47s

The patch does not generate ASF License warnings.

109m  8s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4774/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/4774

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle

uname
Linux bfd762a833f7 4.15.0-191-generic #202-Ubuntu SMP Thu Aug 4 01:49:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 0af5702755f25f6498e82a25fcf88ba859311978

Default Java
Private Build-1.8.0_342-8u342-b07-0ubuntu1~20.04-b07

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.16+8-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_342-8u342-b07-0ubuntu1~20.04-b07

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4774/2/testReport/

Max. process+thread count
556 (vs. ulimit of 5500)

modules
C: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice-hbase/hadoop-yarn-server-timelineservice-hbase-common U: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice-hbase/hadoop-yarn-server-timelineservice-hbase-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4774/2/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@aajisaka - Please help in reviewing the PR. Thanks.

Thanks @aajisaka for reviewing and merging.


Handle decoding problems with passed in fides_string

Closes https://ethyca.atlassian.net/browse/PROD-1281
Description Of Changes
Passing in an invalid fides_string will now ignore it instead of breaking the app!
In the video, both with and without a fides string give the same result.
https://github.com/ethyca/fides/assets/24641006/ad1103e5-ccb6-4451-aebe-8de27e59b648
Code Changes

[x] Add try/catch around decoding the tc string
[x] If the decoding fails, reset the passed in fides_string to null

Steps to Confirm

[ ] See steps in the ticket

Pre-Merge Checklist

[ ] All CI Pipelines Succeeded
Documentation:

[ ] documentation complete, PR opened in fidesdocs
[ ] documentation issue created in fidesdocs

[ ] Issue Requirements are Met
[ ] Relevant Follow-Up Issues Created
[ ] Update CHANGELOG.md
[ ] For API changes, the Postman collection has been updated

Okay @NevilleS I've refactored, hopefully it is a little more streamlined now. thank goodness for all the tests you and @eastandwestwind put in 🙏

We talked about this separately and decided:

the initialization logic as a whole is too complicated!
this PR makes it marginally more understandable
let's make a separate ticket to simplify the initialization logic
this PR can continue down its release process (I tried to poke at it more to simplify it, but it ended up requiring larger changes I'd rather do as part of an initialization refactor)


CVEs/VEX and SPDX

This question was asked in the 2022-08-04 General call.
@goneall gave a quick summary that I wasn't able to capture here. Perhaps he could drop some links or an outline? Then we can create some sort of documentation about it.

I didn't think about this until after today's call, but the defects team has already created a section Including security information in a SPDX document which describes this.


Email notifications: "Depositor: Draft in progress, not submitted/published"

https://docs.google.com/document/d/1TZVILUrORI25kRZyUZ70vMQYo90Ngp_tqCI7BdU_VyQ/edit#heading=h.lj2h48ox03kd
Example implementation: https://github.com/sul-dlss/happy-heron/pull/673

closing this for now, but will note here the possible delta between the implementation that was merged last month and the spec...
from the PR description

This PR as is has a bit of a delta from [the spec]: I'd originally interpreted as notify at two weeks, then every four weeks after that... but upon re-reading, I think the intent is notify at two weeks, again at four weeks, then every four weeks after that? If so, it should be easy enough to make that change in this PR or in a follow on (happy to do either). [PR is now merged, so would need a follow-on now)]

the comments on the spec doc linked from this issue say:

@hannahfrost -- How much time has elapsed before the reminder is issued? How many reminders are sent before they cease? When a recipient's SUNet account becomes inactive before completing a deposit, can we detect this and cease sending the notifications?
@amyehodge -- My inclination is to go with two weeks, then at a month, and monthly thereafter. I wouldn't stop as long as the SUNet is valid, but it would be nice if they had an option to request that they stop. That might be out of scope right now.

there is, indeed, no attempt at present to verify whether the SUNet is still valid.
if we want to adjust the interval between reminders, or validate that the SUNet is still valid, i'd be slightly inclined to open separate new issues for either/each of those things, rather than reopening this one (but i don't feel strongly about that).

closing this for now, but will note here the possible delta between the implementation that was merged last month and the spec...
from the PR description

This PR as is has a bit of a delta from [the spec]: I'd originally interpreted as notify at two weeks, then every four weeks after that... but upon re-reading, I think the intent is notify at two weeks, again at four weeks, then every four weeks after that? If so, it should be easy enough to make that change in this PR or in a follow on (happy to do either). [PR is now merged, so would need a follow-on now)]

the comments on the spec doc linked from this issue say:

@hannahfrost -- How much time has elapsed before the reminder is issued? How many reminders are sent before they cease? When a recipient's SUNet account becomes inactive before completing a deposit, can we detect this and cease sending the notifications?
@amyehodge -- My inclination is to go with two weeks, then at a month, and monthly thereafter. I wouldn't stop as long as the SUNet is valid, but it would be nice if they had an option to request that they stop. That might be out of scope right now.

there is, indeed, no attempt at present to verify whether the SUNet is still valid.
if we want to adjust the interval between reminders, or validate that the SUNet is still valid, i'd be slightly inclined to open separate new issues for either/each of those things, rather than reopening this one (but i don't feel strongly about that).

@jmartin-sul I think that notification interval is fine.
It would be great to have verification if SUNet IDs are still valid, but perhaps we would want that for more than just this notification. Question: what happens if the email is sent and the SUNet isn't valid? Would that bounce back to somewhere, basically letting us know it isn't valid? That could be a way of getting this info indirectly.

@jmartin-sul I think that notification interval is fine.
It would be great to have verification if SUNet IDs are still valid, but perhaps we would want that for more than just this notification. Question: what happens if the email is sent and the SUNet isn't valid? Would that bounce back to somewhere, basically letting us know it isn't valid? That could be a way of getting this info indirectly.

I would have expected to have received a notification about this work that has been in draft since April 20, 2021, but I haven't. Can someone check on this?

filed new ticket #1419


Showing Activity Indicator in Page Model Load

Hi ,
We are working with Fresh MVVM Architecture on Xamarin Forms Development. In our application,  we are facing issue for Showing/Hiding the Activity Indicator in Page Model Loading while making WCF REST Service Calls.
Kindly suggest us on showing the activity Indicator Properly while loading the Page Model Class (As we make 5 to 6 WCF REST Service Calls in Loading).
Content Page:
<ContentPage.Content>
  <Grid>
    <Grid x:Name="LayoutRoot_Loading" VerticalOptions="Center" HorizontalOptions="Center" >
      <ActivityIndicator IsRunning="{Binding ActIndRunning,Mode=TwoWay}" IsVisible="{Binding ActIndRunning,Mode=TwoWay}"
                        Color="White"  VerticalOptions="Center" HorizontalOptions="Center" x:Name="ActIndicator_Loading" />
    </Grid>
    <Grid x:Name="LayoutRoot" BackgroundColor="White" Opacity="{Binding LayoutRootOpacity,Mode=TwoWay}" IsEnabled="{Binding LayoutIsEnabled,Mode=TwoWay}" >
      <Grid.RowDefinitions >
        <RowDefinition Height="9.4*"/>
        <RowDefinition Height=".6*"/>
      </Grid.RowDefinitions>
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
      </Grid.ColumnDefinitions>
      <Label Grid.Row="0" Grid.Column="0" Text="Application Server URL:" HorizontalOptions="Fill" VerticalOptions="CenterAndExpand" TextColor="#888888"/>
      <StackLayout Grid.Row="1" Grid.Column="0" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" Orientation="Vertical" BackgroundColor="#DAE3EA">
        <!-- few label, entry , extended picker and listview controls are created below and binded -->
      </StackLayout>
    </Grid>
  </Grid>
  </ContentPage.Content>

Page Model:
[ImplementPropertyChanged]
 public class NavigationNextPageModel : FreshBasePageModel
 {

     List<Helpdesk> List_Equipment, List_Sites;
     public NavigationNextPageModel( )
     {
         try
         {
             /* We have tried to load the service calls here but no */
             //LoadWCFServiceFunctionsForControlBinding();
         }
         catch (Exception ex) { CoreMethods.DisplayAlert("SampleApp", "Exception", "Ok"); }
     }

     public override void Init(object initData)
     {
         LoadWCFServiceFunctionsForControlBinding();
     }

     async void LoadWCFServiceFunctionsForControlBinding()
     {
         ShowProgressDialog(true);

         // When we set the task Delay it shows the Activity Indicator properly for loading.
         //await Task.Delay(5000);

         //When we make WCF REST Service Callls its not showing the activity Indicator and loads the page .
         object[] Parameters = new object[1];
         Parameters[0] = "SampleData";
         List_Sites =await App.SampleWCFManager.FillUserSitesAsync(Parameters);
         List_Equipment = await App.SampleWCFManager.FillUserEquipmentAsync();
         Parameters = new object[1];
         Parameters[0] = "SiteName";
         List_Staffs = await App.SampleWCFManager.FillUsersAsync(Parameters);

         ShowProgressDialog(false);
     }

     protected override void ViewIsAppearing(object sender, System.EventArgs e)
     {
         base.ViewIsAppearing(sender, e);
         //LoadWCFServiceFunctionsForControlBinding();
     }

     //This method is called when the view is disappearing.
     protected override void ViewIsDisappearing(object sender, System.EventArgs e)
     {
         base.ViewIsDisappearing(sender, e);
     }

     public override void ReverseInit(object value)
     {

     }

     public bool _ActIndRunning { get; set; }
     public bool ActIndRunning
     {
         set
         {
             if (_ActIndRunning != value)
             {
                 _ActIndRunning = value;
                 RaisePropertyChanged("ActIndRunning");
             }
         }
         get { return _ActIndRunning; }
     }

     public Decimal _LayoutRootOpacity { get; set; }
     public Decimal LayoutRootOpacity
     {
         set
         {
             if (_LayoutRootOpacity != value)
             {
                 _LayoutRootOpacity = value;
                 RaisePropertyChanged("LayoutRootOpacity");
             }
         }

         get { return _LayoutRootOpacity; }
     }

     private bool _LayoutIsEnabled = true;
     public bool LayoutIsEnabled
     {
         get { return this._LayoutIsEnabled; }
         set
         {
             this._LayoutIsEnabled = value;
             RaisePropertyChanged("LayoutIsEnabled");
         }
     }

     void ShowProgressDialog(bool ShowHide)
     {
         try
         {
             if (ShowHide)
             {
                 this.ActIndRunning = true;
                 this.LayoutRootOpacity = (decimal).2;
                 LayoutIsEnabled = false;
             }
             else
             {
                 this.ActIndRunning = false;
                 this.LayoutRootOpacity = (decimal)1;
                 LayoutIsEnabled = true;
             }
         }
         catch (Exception ex) { CoreMethods.DisplayAlert("SampleApp", "Exception", "Ok"); }
     }
 }

 public class Helpdesk
 {
     public string Name { get; set; }
     public string Description  { get; set; }
     public Object Code { get; set; }
 }

So it still doesn't work when you put LoadWCFServiceFunctionsForControlBinding() in ViewIsAppearing? I've got it to work by doing something like the code below. I'm using Acr.UserDialogs to show the dialog but you can put your ShowProgressDialog() code in there.
[ImplementPropertyChanged]
public class SelectProjectPageModel : AbstractPageModel
{
	public bool IsLoading { get; set; }
	public List<Project> Projects { get; set; }

	public SelectProjectPageModel() { }

	public override void Init(object initData)
	{
		base.Init(initData);
	}

	public void OnIsLoadingChanged()
	{
		if (IsLoading)
		{
			Dialogs.ShowLoading("Loading...");
		}
		else
		{
			Dialogs.HideLoading();
		}
	}

	protected override async void ViewIsAppearing(object sender, EventArgs e)
	{
		if (!Projects.Any())
		{
			await PopulateProjects();
		}
	}

	public async Task PopulateProjects()
	{
		IsLoading = true;
		await DataService.GetAllProjects();
		Projects = await DataService.GetAllProjects();
		RaisePropertyChanged();
		IsLoading = false;
	}
}

Hi ,
I have tried the above workaround by including "async " in ViewIsAppearing Method.
But the page is navigated only after the data is loaded  till that stays in previous page.

The reason for this issue has nothing to do with FreshMvvm, it's just that the WCF methods your calling aren't really async underneath.
Maybe try. Task.Factory.StartNew(() => DoStuff(), TaskCreationOptions.LongRunning);

you can use userdialog nuget package. it works fine with freshmvvm


qual: adapt react boilerplates to<EMAIL_ADDRESS>

pageContext.pageProps and pageContext.title are deprecated:
https://github.com/vikejs/vike-react/blob/main/packages/vike-react/CHANGELOG.md
See also https://github.com/vikejs/vike-react/pull/50
@magne4000 if that's fine with you, I'll do similar changes to all {react,vue,solid}* boilerplates

Actually, I've updated https://vike.dev/head and, as you can see in the updated docs, setting the title over data.title isn't documented. I'm about to make a PR updating vike-react explaining why.

Thanks @brillout. Documenting all the vike extensions is also on my radar. But this PR is still correct, right?

I see @brillout, I sense that you'd also like to stop supporting pageContext.data.title and instead ask the user to:

set pageContext.data.whateverTitle in their data hook, and
use pageContext.data.whateverTitle in their +title.js.

Correct? Happy to adapt all the examples and boilerplates everywhere if that's the case.

My idea is this: https://vike.dev/head#:~:text=const { rocket } %3D useData(). PR is on the way.

But it doesn't work: https://github.com/vikejs/vike-react/pull/70/files#diff-a96b0be2b21bc541b4234f17fc1bd2d20bdb901dbe006dd996ed006184699206R27. Let me think and come up with something else (I've a reliable trick in mind but I'm not sure I want to complexify things). I guess I will end up with pageContext.data as you suggest. The DX isn't as nice but it's fine.

But it doesn't work

I think it's because you haven't remove description in another example's config

Converted into a draft for now. I'll rework this once https://github.com/vikejs/vike-react/pull/70 gets released

I'm happy with this now. Let me know what you think

LGTM! If you are still up for it, let's do the same for vue and solid.

Yes, already on it: https://github.com/vikejs/vike-vue/pull/70


Added a section on server decommissioning rather than entire product …

…decomissioning
These steps cover the bits needed to remove a single server (decommissioning) and are based on the later section on entire removal of the product. In the server decom scenario though there is less stuff to remove. You need to uninstall the software and remove one SCP and not the forest config.

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

@jay98014 Thoughts?

#assign @jay98014 #unassign @MicrosoftGuyJFlo

Hi @jay98014
Would you review the proposed changes to this article?
Thank you

#please-close forwarded to content owner to decide if they want to add this in the future.

@brianreidc7 Thanks for your contribution.


display healthy cond on get

when listing policies display healthy condition

this is how it looks

Just minor comment about the PR title. Make explicit it is about the DNS policy, as it is shown as part of the release notes.


tls: failed to verify certificate: x509: certificate signed by unknown authority

Is this the right place to submit this?

[X] This is not a security vulnerability or a crashing bug
[X] This is not a question about how to use Istio

Bug Description
Hi all, I'm trying to install multi primary (2 vCluster) setup using vCluster managed by Loft in a single network and a single physical cluster. I followed these steps for the setup:

Create CA: https://istio.io/latest/docs/tasks/security/cert-management/plugin-ca-cert/
Install Multi Primary: https://istio.io/latest/docs/setup/install/multicluster/multi-primary/
Verify: https://istio.io/latest/docs/setup/install/multicluster/verify/
Troubleshoot: https://istio.io/latest/docs/ops/diagnostic-tools/multicluster/

I tried using istio version 1.20, 1.21, and 1.22, but at the end of the day istiod always throws this error https://console-loft.example.com/kubernetes/project/myproject/virtualcluster/vcluster-1api/v1/namespaces?limit=500&resourceVersion=0": tls: failed to verify certificate: x509: certificate signed by unknown authority
The error happens after I ran istioctl create-remote-secret --context="${CTX_CLUSTER2}" --name=cluster2 | kubectl apply -f - --context="${CTX_CLUSTER1}" on each cluster
Both cluster is having the same ca-root cert and there's only one endpoint shown when I run istioctl --context $CTX_CLUSTER1 proxy-config endpoint <pod-name>.<namespace> | grep helloworld
You guys have any idea what I might be missing?
Version
istioctl version
client version: 1.20.0
control plane version: 1.20.0
data plane version: 1.20.0

kubectl version
Client Version:  1.27
Kustomize Version: v5.0.1
Server Version: 1.26

Additional Information
The endpoint https://console-loft.example.com is reachable from both cluster (tested using curl from both cluster) and the TLS certificate is created using Let's Encrypt.

the output of istioctl create-remote-secret --context="${CTX_CLUSTER2}" --name=cluster2 is a kubeconfig . You can point kubectl at this. Does it give the same error? I assume so
can you post it? it will probably have credentials you should remove

Dear @howardjohn, thank you for replying. After doing what you suggested it turned out to be misconfiguration of remote-secret when generated by using istioctl command. At least, that's what I'm guessing at
Here is my kubeconfig where istioctl create the secret from (notice that there's no certificate-authority-data in here)
apiVersion: v1
clusters:
- cluster:
    insecure-skip-tls-verify: true
    server: https://console-loft.example.com/kubernetes/project/myproject/virtualcluster/vcluster-1
  name: vcluster-1
- cluster:
    insecure-skip-tls-verify: true
    server: https://console-loft.example.com/kubernetes/project/myproject/virtualcluster/vcluster-2
  name: vcluster-2
- context:
    cluster: vcluster-1
    user: vcluster-1
  name: vcluster-1
- context:
    cluster: vcluster-2
    user: vcluster-2
  name: vcluster-2
kind: Config
preferences: {}
users:
- name: vcluster-1
  user:
    token: <64-chars-token>
- name: vcluster-2
  user:
    token: <64-chars-token>

Here's the kube secret when generated using istioctl (generated certificate-authority-data and changed the token into long string)
./istio-test$ istioctl create-remote-secret --context="${CTX_CLUSTER1}" --name=cluster1
# This file is autogenerated, do not edit.
apiVersion: v1
kind: Secret
metadata:
  annotations:
    networking.istio.io/cluster: cluster1
  creationTimestamp: null
  labels:
    istio/multiCluster: "true"
  name: istio-remote-secret-cluster1
  namespace: istio-system
stringData:
  cluster1: |
    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: LS0tLS1CRDGHTsrtYsXNmTVRNd05qUXhXaGNOTXpRd05qQXhNVE13TmpReApXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUzTVRjME1qQXdNREV3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFTRFlpc0Q0R2NLOHZ4Ly9LbHZ0UGJFUjF5c0U0SENWQVRuVG5xYlNlb0IKUUdwQzRDNVR6ZDZocUtmaFdjejB1c0N5d1ljVUZpT3JXMmJvellOQmtHTEpvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVU5rNHZnY1NDS0pUQmh2OVdyd20zCkYvL083RG93Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnTmRRNm9GN0gxR2t0NG5ycTIyT1BzQnV1amE4NWhhd1gKTHF3QkxlK1BPYUlDSUV4U25rTUI4Z3JDOGRaL0VLU2g2ZVhKMzd6dnVuSkgzUUtoRG4rV284asdadadadadUtLS0tLQo=
        server: https://console-loft.example.com/kubernetes/project/myproject/virtualcluster/vcluster-1
      name: cluster1
    contexts:
    - context:
        cluster: cluster1
        user: cluster1
      name: cluster1
    current-context: cluster1
    kind: Config
    preferences: {}
    users:
    - name: cluster1
      user:
        token: PD2cGasdRRGHHWRSDDDDGGNjb3VudC9uYW1lc3BhY2UiOiJpc3Rpby1zeXN0ZW0iLCJrdWJlcm5lqweqweqwdJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImlzdGlvLXJlYWRlci1zZXJ2aWNlLWFjY291bnQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI5OWEzMzc2OS1kZDI1LTQ2NjYtOTI2MS1iODE1NmNiZWY0NTMiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6aXN0aW8tc3lzdGVtOmlzdGlvLXJlYWRlci1zZXJ2aWNlLWFjY291bnQifQ.ZcuarEasdadadadasdasdpliemAt6rDSAXZdCKpZmyW_UFW2iw1UC10fkWSNN5k91VYpWZ1wyB7TKwOntXJ5J_KUgwVYDf86Nci2cTBLkUYV0Ki10P3eVa_eANMKepxekHey0N3Y3ahtvwmGJWgtC0gN5NVawNtprLtMh6uFMZZyn4GJ8BKwDzqrI5g51iHanNV2r8fF6_sPpnhIpvlq30atZQxBRA847G3m-Nssdsdfdg

Using the generated kubeconfig will always result in tls: failed to verify certificate: x509: certificate signed by unknown authority. So I adjusted the secret using my kubeconfig and now the Istio is working fine.
~/istio-test$ istioctl --context $CTX_CLUSTER1 proxy-config endpoint sleep-bc9998558-7gj8h.sample | grep helloworld
<IP_ADDRESS>:5000                                      HEALTHY     OK                outbound|5000||helloworld.sample.svc.cluster.local
<IP_ADDRESS>:5000                                      HEALTHY     OK                outbound|5000||helloworld.sample.svc.cluster.local

In the output above, is token and certificate-authority-data the actual data? Or did you fill it with something random?
It appears neither are valid base64/jwt which is odd.
So the certificate-authority-data  is suppoosed to get its data from  istio-reader-service-account service account in istio-system which should get a secret like istio-reader-service-account-istio-remote-secret-token.
So the fact your input has insecure-skip-verify is NOT respected by Istio.
How do in-cluster controllers work? They should authenticate essentially the same way, pulling from what k8s tells it. But maybe its a different network path cluster-internal vs cluster-external

In the output above, is token and certificate-authority-data the actual data? Or did you fill it with something random?

No, for certificate-authority-data it was fully generated by Istio and the token was also changed by Istio.

So the fact your input has insecure-skip-verify is NOT respected by Istio.

I guess thats the reason, since our cluster endpoint is using self-signed certs we need to enable the insecure-skip-verify and to connect between the cluster it uses user token defined in the kubeconfig.
I'm closing this Issue since i've found the solution. Thanks a ton @howardjohn

Hi @junandaip, i am struggling with same error, can you give steps how you have fixed this, this is much needed for me.


Adding the PU

Hello, we should add the PU number with the application version as they get released at the same time and the support team mostly refer to the PU number rather than the application version when talks with the customers.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e7dcb285-f32c-c92e-fe49-1617f213066b
Version Independent ID: 8f28c1a0-9da5-f853-90ee-d82a4c32df7e
Content: Service update availability - Finance & Operations | Dynamics 365
Content Source: articles/fin-ops-core/fin-ops/get-started/public-preview-releases.md
Service: dynamics-365-cross-app
Product: ****
Technology: ****
GitHub Login: @hmahl
Microsoft Alias: hmahl

Since we no longer release the platform version as a standalone package, the platform version number is a purely internal numbering system used by engineering. It’s the 10.0.xx application version that is used to identify combined app+plat package versions, so it is the application version number that should be used in discussions with customers.
From: AliAAdamu @.>
Sent: Tuesday, September 6, 2022 9:42 AM
To: MicrosoftDocs/dynamics-365-unified-operations-public @.>
Cc: Heather Mahl @.>; Mention @.>
Subject: [MicrosoftDocs/dynamics-365-unified-operations-public] Adding the PU (Issue #4153)
Hello, we should add the PU number with the application version as they get released at the same time and the support team mostly refer to the PU number rather than the application version when talks with the customers.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e7dcb285-f32c-c92e-fe49-1617f213066b
Version Independent ID: 8f28c1a0-9da5-f853-90ee-d82a4c32df7e
Content: Service update availability - Finance & Operations | Dynamics 365https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fdynamics365%2Ffin-ops-core%2Ffin-ops%2Fget-started%2Fpublic-preview-releases&data=05|01|hmahl%40microsoft.com|48ebfb4bf3124f70a66608da9026b039|72f988bf86f141af91ab2d7cd011db47|1|0|637980793092380188|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=bdVjh4OMEHfdfCwJtw%2FBX6RTISfXWDb0wMJmpdGHj9I%3D&reserved=0
Content Source: articles/fin-ops-core/fin-ops/get-started/public-preview-releases.mdhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2FDynamics-365-Unified-Operations-Public%2Fblob%2Fmain%2Farticles%2Ffin-ops-core%2Ffin-ops%2Fget-started%2Fpublic-preview-releases.md&data=05|01|hmahl%40microsoft.com|48ebfb4bf3124f70a66608da9026b039|72f988bf86f141af91ab2d7cd011db47|1|0|637980793092380188|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=nVlJnQM1hfoqXfq1on%2Fuz5qVNnggd6%2F49IXFjbRqoqg%3D&reserved=0
Service: dynamics-365-cross-app
Product: ****
Technology: ****
GitHub Login: @hmahlhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fhmahl&data=05|01|hmahl%40microsoft.com|48ebfb4bf3124f70a66608da9026b039|72f988bf86f141af91ab2d7cd011db47|1|0|637980793092380188|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=4Z4GsbW24vXJmjTNMxHjckF2VNdvk1F%2FSYb63axRwp4%3D&reserved=0
Microsoft Alias: hmahl

—
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fdynamics-365-unified-operations-public%2Fissues%2F4153&data=05|01|hmahl%40microsoft.com|48ebfb4bf3124f70a66608da9026b039|72f988bf86f141af91ab2d7cd011db47|1|0|637980793092380188|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=OBwfDQZKXNS3Y4V2srJOyi3QXSbr3A9wi7I4MTHta4s%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAVVJQ33BOXNPPTRA2PSBNDLV45X4VANCNFSM6AAAAAAQGAB3VU&data=05|01|hmahl%40microsoft.com|48ebfb4bf3124f70a66608da9026b039|72f988bf86f141af91ab2d7cd011db47|1|0|637980793092380188|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=XsVoKZIa5MEHJzr27musLy5ovXT9MyDlTMFYj3FkEfc%3D&reserved=0.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>


Fatal: Unable to attach to remote geth: dial unix qdata/dd1/geth.ipc: connect: no such file or directory

I want to run Quorum locally so I have installed Quorum and constellation locally for that I followed the step.
https://github.com/jpmorganchase/quorum/wiki/Getting-Set-Up
Then, I tried to run 7nodes example locally.
I have successfully run the command "raft-init.sh". Here is the output:-

After that, I followed the next step. To run the command "geth attach qdata/dd1/geth.ipc" in new terminal but it gives the error:
Fatal: Unable to attach to remote geth: dial unix qdata/dd1/geth.ipc: connect: no such file or directory
So, How can I run 7nodes example locally?

A couple of things to check:

Does the ipc file exist (qdata/dd1/geth.ipc)?
Are there any errors in the log file (qdata/logs/1.log)?

If the node hasn't started correctly, or has died then the ipc file won't exist and you won't be able to connect to the node.

@SatpalSandhu61

Does the ipc file exist (qdata/dd1/geth.ipc)?

No, ipc file doesn't create/exists if I run it locally. If I run it through vagrant then, in that case, ipc file got created.

Are there any errors in the log file (qdata/logs/1.log)?

Log file contains the following:-
nohup: appending output to 'nohup.out'
flag provided but not defined: -raft

If the node hasn't started correctly or has died then the ipc file won't exist and you won't be able to connect to the node.

I have installed the Quorum and constellation. The raft-start.sh is also successful then, what should I do to check the node has started correctly or died?

If there is no error in the log file then geth should be running ok. You can double check with:
ps -ef | grep -i geth

In which case, the geth.ipc file should exist. Is it possible you're in the wrong location for the qdata directory?
Are you in the 7nodes directory when you're running "geth attach qdata/dd1/geth.ipc"?
Can you paste the results from:
pwd
ls -ltr qdata/dd1
geth attach qdata/dd1/geth.ipc

Yes @SatpalSandhu61 this is the result of

pwd
ls -ltr qdata/dd1
geth attach qdata/dd1/geth.ipc

output ps -ef | grep -i geth

prince    4153  2228  0 15:59 pts/18   00:00:00 grep --color=auto -i geth

constellation is also working fine I guess. This is the output of constellation1.log:-

@SatpalSandhu61 @princesinha19
I think the problem is with this log: "flag provided but not defined: -raft".
This is 1.log:

No such log in:

@SatpalSandhu61 @princesinha19
I think the problem is with this log: "flag provided but not defined: -raft".
This is 1.log in my local machine vs vagrant environment:

@princesinha19, ok - so it does look like your geth processes are not starting up.
@ayushkaul95 may be correct, but I'm not sure at the moment why it's complaining about the --raft flag. The command line options all look correct to me.
What version of quorum are you running?
Is it possible you have an old version of 'geth' on your path that is being picked up?

@SatpalSandhu61 @ayushkaul95
Thanks for your clarifications. Maybe @ayushkaul95, you are right.

What version of quorum are you running?

VERSION
1.7.2-stable-0d0c507a

That's the ethereum version that quorum is using.
I meant which version of quorum have you checked out and built?
I'd suggest checking out and building the latest version (v2.1.1), and also ensure you have a recent checkout of quorum-examples/master.

@SatpalSandhu61 From where i can get Quorum version (v2.1.1).  Can you please share the link.

Actually, it looks like you do have the latest quorum version. If you want to do a fresh checkout here are the repo's:
Quorum: https://github.com/jpmorganchase/quorum/releases
Quorum-examples: https://github.com/jpmorganchase/quorum-examples
I believe the issue may be that you are picking up a native geth, rather than Quorum.
Can you check that the Quorum binary is on the path? (Try 'which geth' before you execute the raft-init/raft-start commands).

@SatpalSandhu61 Yes, I have latest Quorum & Quorum-examples.

Can you check that the Quorum binary is on the path? (Try 'which geth' before you execute the raft-init/raft-start commands).

@SatpalSandhu61 @ayushkaul95 Thanks.

Can you check that the Quorum binary is on the path? (Try 'which geth' before you execute the raft-init/raft-start commands).

@SatpalSandhu61 You was right. This was the problem.
I solved it by setting the geth PATH as:- /home/prince/quorum/build/bin/geth
Before that, it was taking the ethereum geth as geth Path. That's why geth.ipc file doesn't get created.

Hello, I have been trying to get quorum running using docker,
I have the same error,
Fatal: Unable to attach to remote geth: dial unix qdata/dd1/geth.ipc: connect: no such file or directory
I have geth installed in my system using brew

@princesinha19

I solved it by setting the geth PATH as:- /home/prince/quorum/build/bin/geth

How to set geth PATH to /home/anuraag/Documents/quorum/build/bin/geth
Thanks..

Hi guys,
I'm having the same problem, but I only trying the follow comand: geth attach
and I got "Fatal: Unable to attach to remote geth: dial unix /home/diego/.ethereum/geth.ipc: connect: no such file or directory"
I'm use the azure vm, connected by ssh from my WSL on windows.
I'm not an expert on the subject, either english, so if someone could help me wrinting step by sted I'll be so greteful.
Some informations:

Please don't raise questions on closed tickets. If you have a quorum issue then raise a new ticket. In this case, where you are asking a question rather than facing a genuine Quorum issue, I refer you to our Slack channel. There is a large community on there who can answer your questions and help you out. You can join the channel by clicking on the link here.
In your case, the geth version you are executing is actually the standard Ethereum executable. It is not Quorum. You need to follow the instructions on our wiki to build or download Quorum.
The best way for you to get started is to run the quorum-examples.

Sorry about that


any generated FVT code needs to be added to git .ignore

after running a mvn clean install, I am finding many files from fvt are part of my git change list.
if generated these files need adding to .gitignore
Example:
➜  egeria git:(master) ✗ git status | head -20                                                 git:(master|✚164
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/APIOperation/APIOperationReferences.java
	modified:   open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/APISchemaType/APISchemaTypeReferences.java
	modified:   open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/ActorProfile/ActorProfileReferences.java
	modified:   open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/Application/ApplicationReferences.java
	modified:   open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/ArrayDocumentType/ArrayDocumentTypeReferences.java
	modified:   open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/ArraySchemaType/ArraySchemaTypeReferences.java
	modified:   open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/Asset/AssetReferences.java
	modified:   open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/AssetOwner/AssetOwnerReferences.java
	modified:   open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/BoundedSchemaType/BoundedSchemaTypeReferences.java
	modified:   open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/BusinessCapability/BusinessCapabilityReferences.java
	modified:   open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/CertificationType/CertificationTypeReferences.java
	modified:   open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/ClassificationAnnotation/ClassificationAnnotationReferences.java
➜  egeria git:(master) ✗

i am happy to make the change, but you may be part way through changes, so perhaps there is more to be added.

@planetf1 thanks for finding this . I will fix it up.

Fixed


Booster error

The central Booster does the “Boosterback” and the re-entry burn, however, when it finishes doing the last burn mentioned, the “isCoreBooster” gives an error. And the curious thing about this is that the error only happens in the central booster, in the “Falcon Heavy” the error does not happen with the adjacent boosters. How can this be fixed?

The central Booster does the “Boosterback” and the re-entry burn, however, when it finishes doing the last burn mentioned, the “isCoreBooster” gives an error. And the curious thing about this is that the error only happens in the central booster, in the “Falcon Heavy” the error does not happen with the adjacent boosters. How can this be fixed?

Can you provide a screenshot of the core's terminal?

O Booster central faz o “Boosterback” e a queima de reentrada, porém, ao terminar de fazer a última queima citada, o “isCoreBooster” dá erro. E o curioso disso é que o erro só acontece no booster central, no “Falcon Heavy” o erro não acontece com os boosters adjacentes. Como isso pode ser consertado?

Você pode fornecer uma captura de tela do terminal do núcleo?

Sure here it is:

Here's closer:

This happens shortly after the reentry burn.

Are you sure that the tags are correct? I can't seem to find the problem with the code as it should default to having isCoreBooster to true.

I put the tags as is in the "README" file. However, this error only happens with the central booster.

And now after a few flights with the code the error mentioned above stopped happening, now the booster simply stops after performing the re-entry burn. But the curious thing is that the script moves the booster, but does not turn on the engines for landing. And again, this error only happens with the central booster. The “Tundra Heavy” side boosters perfectly complete the itinerary:

[ ] They carry out the boosterback,
[ ] carry out the cost phase,
[ ] the re-entry burn,
[ ] and finally carry out the landing burn and land at the coordinates defined in the itinerary perfectly.

Then I decided to test the code and changed the following code:
local isCoreBooster is 1.	// for correct engine selection 	if (core:tag = "2" or core:tag = "3") { 		set isCoreBooster to 0. 	}
to this:
local isCoreBooster is 0.	// for correct engine selection 	if (core:tag = "2" or core:tag = "3") { 		set isCoreBooster to 0. 	}
and it landed.

Still no success with the central booster landing. 😥😥

Hey mate, can you try reverting the changes you did in the script? Then add a nametag on the interstage "1", the nosecones "2" and "3" (without the quotations). Then get back to me if it worked:)

Hey mate, can you try reverting the changes you did in the script? Then add a nametag on the interstage "1", the nosecones "2" and "3" (without the quotations).

Ok, I'll do it and send you the result here.

I have a doubt. What is the purpose of naming ports “APAS”? I ask this because, when I went to launch and I'm going to look which commitment is in the interstage and it is already "1", however, this happens even when I don't name the port with "APAS".
Regarding the request above, I already did the test without the quotes, however, I had the same error.

May I know which part is the root part of the rocket?

It's the fairing adapter, the one that separates the load.


TypeError: 'NoneType' object is not subscriptable

Traceback (most recent call last):
  File "/home/yswtrue/Code/stock_scraper/.venv/lib/python3.10/site-packages/twisted/internet/defer.py", line 1656, in _inlineCallbacks
    result = current_context.run(
  File "/home/yswtrue/Code/stock_scraper/.venv/lib/python3.10/site-packages/twisted/python/failure.py", line 514, in throwExceptionIntoGenerator
    return g.throw(self.type, self.value, self.tb)
  File "/home/yswtrue/Code/stock_scraper/.venv/lib/python3.10/site-packages/scrapy/core/downloader/middleware.py", line 49, in process_request
    return (yield download_func(request=request, spider=spider))
  File "/home/yswtrue/Code/stock_scraper/.venv/lib/python3.10/site-packages/twisted/internet/defer.py", line 1030, in adapt
    extracted = result.result()
  File "/home/yswtrue/Code/stock_scraper/.venv/lib/python3.10/site-packages/scrapy_playwright/handler.py", line 275, in _download_request
    result = await self._download_request_with_page(request, page)
  File "/home/yswtrue/Code/stock_scraper/.venv/lib/python3.10/site-packages/scrapy_playwright/handler.py", line 314, in _download_request_with_page
    server_ip_address = ip_address(server_addr["ipAddress"])
TypeError: 'NoneType' object is not subscriptable

launch with user_data_dir
            yield scrapy.Request(
                url=url,
                dont_filter=True,
                callback=self.check_login,
                headers=self.headers,
                meta={
                    "account_info": account_info,
                    "playwright": True,
                    "playwright_context": f"{account_info['username']}context",
                    "playwright_page_goto_kwargs": {
                        "wait_until": "domcontentloaded",
                    },
                    "playwright_include_page": True,
                    "playwright_context_kwargs": {
                        # "java_script_enabled": False,
                        "headless": False,
                        "ignore_https_errors": True,
                        "user_data_dir": f"data/{account_info['username']}",
                        "proxy": {
                            "server": proxy_url,
                            "username": user or "",
                            "password": password or "",
                        }
                        if proxy
                        else None,
                    },
                },
                # meta={
                #     "proxy": self.proxy if self.proxy else None,
                # },
            )

Fixed in 6ddd4bdc315cc7bddfe1d17b4592bd5203777354, released as v0.0.21. Thanks for the report.


fix classicFilter.Test reeturns wrong result and also test function

As describe in title, add and fix some test function by the way

and request to tag this repo for version controlling


[139] Unique param storage key based on input configuration

Context
As described in #139 changes to the input's configuration of a function can cause bugs when the previously cached input values aren't compatible with the new input's configuration anymore.
What this does

adds a utility method that generates a hash from the string representation of an object
uses this method to generate a hash based on a functions current input configuration
adds that hash to that function's localStorage key, so it becomes df_functionName_hash

this makes sure that any changes to the input's config of a function will cause mechanic to create a fresh params cache

Closes #139

Excellent! I think this is ready to go.


Unique Identifiers for Flatpickr Inputs

Hi there,
I wanted to re-introduce issue 538 – while I feel your justification is totally valid (not wanting to support myriad validation tools, etc), there are many other reasons where having a unique ID / Name on inputs is very useful.
As one example, as an enhancement for accessibility, if you provide the name/ID of an input to the for= attribute of a <label> element, clicking the label immediately focuses the related field. It's also much more difficult to uniquely identify a single field (as the original field is replaced / hidden / disabled). Without any unique identifier for the fields, it's tricky to ensure consistency with other inputs in our forms.
My suggestion is simple: if an input has a name= or id= attribute, simply copy it to the cloned "flatpickr" input with an additional suffix. (so if the original input was  id="start_date", the flatpickr input would be id="start_date_flatpickr" or something. A similar pattern has proven to be extremely helpful in the Selectize library (which replaces dropdown inputs in a similar manner).
I'd like to take a crack at contributing this myself, but I figured I would ask your opinion first.
My Environment

flatpickr version used: 4.5.0
Browser name and version: Chrome 67.0.3396.87 (Official Build) (64-bit)
OS and version: macOS Sierra 10.12.6

@lconnolly

As one example, as an enhancement for accessibility, if you provide the name/ID of an input to the for= attribute of a  element, clicking the label immediately focuses the related field.

This might address your label/for issue. https://github.com/flatpickr/flatpickr/blob/master/src/plugins/labelPlugin/labelPlugin.ts

My suggestion is simple: if an input has a name= or id= attribute, simply copy it to the cloned "flatpickr" input with an additional suffix.

You can do something like
{
  onReady(){
    if (this.altInput) {
     this.input.name && this.altInput.name = this.input.name;
     this.input.id ....
  }
}


Correct kubernetes system logs path

It appears as though the correct directory name for logs is singular log, running off of:
rancher/hyperkube:v1.13.5-rancher1
rancher/rke-tools:v0.1.27
ls /var/lib/rancher/rke/log
kube-proxy_fc2898322d73c7b65f134bc1ee51df8c5495d30e8dc62ff317b715c48e34b0cf.log
kubelet_56cba883a56640a0237068b10d6fbc2097087e1192d8fdec4baa1a667102f618.log
nginx-proxy_1c6005498a4895db4381e8b86fcff4ee45d728967d68379424c3a2fafed96e12.log
service-sidekick_96eb3ac5f5145022e717c8664aa2b1d964e7b44188412eeb017ea15e26d1adff.log

@loganhz Can you check if this is correct?

Looks good to me

@spencergilbert You're right, the directory name from rke is singular log

Cheers!


example frontend-template fails with cargo  backtrace

What version are you using?
soroban version
soroban 20.3.1 (ae5446f63ca8a275e61912019199254d598f3bd5)
soroban-env 20.2.1 (18a10592853d9edf4e341b565b0b1638f95f0393)
soroban-env interface version<PHONE_NUMBER>0
stellar-xdr 20.1.0 (8b9d623ef40423a8462442b86997155f2c04d3a1)
xdr curr (b96148cd4acc372cc9af17b909ffe4b12c43ecb6)

 cargo version
cargo 1.77.0 (3fe68eabf 2024-02-29)

 node --version
v21.6.1

What did you do?
Initialized a directory with hello world and incement then ran
soroban contract init ./  --frontend-template https://github.com/AhaLabs/soroban-astro-template
ℹ  Initializing project at ./
...

thread 'main' panicked at ${HOME}/.cargo/registry/src/index.crates.io-6f17d22bba15001f/soroban-cli-20.3.1/src/commands/contract/init.rs:407:49:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

What did you expect to see?
Expected a successful initializaton
What did you see instead?

ℹ  Skipped creating ./.gitignore as it already exists
ℹ  Skipped creating ./Cargo.lock as it already exists
➕  Writing ./Cargo.toml
ℹ  Skipped creating ./README.md as it already exists
ℹ  Initializing example contract: increment
➕  Writing ./contracts/increment/Cargo.toml
➕  Writing ./contracts/increment/Cargo.lock
➕  Writing ./contracts/increment/src/lib.rs
➕  Writing ./contracts/increment/src/test.rs

$ mv hello-soroban/ contracts/

$ ls -al
total 64
drwxrwxr-x 3 david david  4096 Mar 28 09:02 .
drwxrwxr-x 3 david david  4096 Mar 28 09:01 ..
-rw-rw-r-- 1 david david 37912 Mar 28 09:01 Cargo.lock
-rw-rw-r-- 1 david david   458 Mar 28 09:02 Cargo.toml
drwxrwxr-x 4 david david  4096 Mar 28 09:02 contracts
-rw-rw-r-- 1 david david    96 Mar 28 09:01 .gitignore
-rw-rw-r-- 1 david david   976 Mar 28 09:01 README.md

$ git init
Initialized empty Git repository in ${HOME}/work/api/getting-started-tutorial/.git/

$ git add .

$ git commit -a -m 'initial commit'
[main (root-commit) eeb7993] initial commit
 12 files changed, 4678 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 Cargo.lock
 create mode 100644 Cargo.toml
 create mode 100644 README.md
 create mode 100644 contracts/hello-soroban/.gitignore
 create mode 100644 contracts/hello-soroban/Cargo.lock
 create mode 100644 contracts/hello-soroban/Cargo.toml
 create mode 100644 contracts/hello-soroban/README.md
 create mode 100644 contracts/increment/Cargo.lock
 create mode 100644 contracts/increment/Cargo.toml
 create mode 100644 contracts/increment/src/lib.rs
 create mode 100644 contracts/increment/src/test.rs

$ soroban contract init ./  --frontend-template https://github.com/AhaLabs/soroban-astro-template
ℹ  Initializing project at ./
ℹ  Skipped creating ./.gitignore as it already exists
ℹ  Skipped creating ./Cargo.lock as it already exists
➕  Writing ./Cargo.toml
ℹ  Skipped creating ./README.md as it already exists
ℹ  Initializing with frontend template
ℹ  Skipped creating ./Cargo.toml as it already exists
➕  Writing ./astro.config.mjs
➕  Writing ./.env.example
➕  Writing ./initialize.js
➕  Writing ./public/favicon.svg
➕  Writing ./tsconfig.json
ℹ  Skipped creating ./README.md as it already exists
➕  Writing ./package.json
ℹ  Skipped creating ./Cargo.lock as it already exists
➕  Writing ./src/env.d.ts
➕  Writing ./src/layouts/Layout.astro
➕  Writing ./src/components/Card.astro
➕  Writing ./src/contracts/util.ts
➕  Writing ./src/pages/index.astro
➕  Writing ./CONTRIBUTING.md
➕  Writing ./.gitattributes
➕  Writing ./packages/.gitkeep
➕  Writing ./package-lock.json
thread 'main' panicked at ${HOME}/.cargo/registry/src/index.crates.io-6f17d22bba15001f/soroban-cli-20.3.1/src/commands/contract/init.rs:407:49:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Thanks for reporting this!
This was resolved as of release v20.3.4, specifically in this PR: https://github.com/stellar/stellar-cli/pull/1224. I've tested this out with v20.3.4 and the most recent release (21.0.0) and was not able to reproduce this error on those releases.


Implementation issue - found disconnected communities

This is a great start at reducing the memory footprint of Leiden :). I ran several tests using the europe_osm.mtx graph with the main branch. When using 16 threads, I see a reduction in memory (~16.23 GB for default Leiden vs ~9.71 GB for the low memory version). However, there is an implementation problem - I am seeing disconnected communities in the final output of community memberships ☹.
If you add a print statement to calculate and display the number of disconnected communities, similar to what you did in your other repo, you should be able to reproduce the problem.
I validated this issue using two approaches.

I modified the code to save off the community memberships to a file and read the results back in via python. I use NetworkX.is_connected to check the connectedness of each community identified by Leiden.
I added calls to your own function to checks for disconnected communities and it reports a non-zero number.

The behavior I'm seeing is not reproducible in every experimental run of low memory gve leiden. The extra checks I performed above pass sometimes but also fail randomly. If I run the same experiment multiple times, I have found disconnected communities in ~2/5 times.
What is the best way set a random number generator seed to have reproducible output? (I see where the RNG is defined but it doesn’t appear to actually get used).
Any thoughts on where the bug might be? Happy to share more information if there's anything I can provide.
P.S. If possible, I recommend updating the mtx code to read in .mtx data and treat vertex ID's as 0-based instead of 1-based. I've noticed other traditional graph tools convert mtx files to 0-based vertex ID's as a standard. It reduces the likelihood of an off-by-1 error and allows for better integration with other tools in the OSS community.

One possibility I can think of is race conditions in the refinement phase. If this is the case, then suitable atomic operations need to be used (in the refinement phase at least). Another possibility is that the input graph is not exactly undirected - the parallel symmetrize may be incorrect.
@jgbradley1 Thanks for a detailed report on this. Do post an update here if you find the bug. I will keep looking as well.

I am seeing the disconnected communities on road networks and protien k-mer graphs (see Logs).

The fix works by ensuring that the aggregated graph is undirected. Since we are use low-memory scans for aggregate, the aggregated graph is not guaranteed to be undirected by default, even in the input graph is undirected.
Thanks @jgbradley1 for reporting the issue, I will be updating the report in some time. Here are the current logs.

Great find @wolfram77 and thanks for fixing!
Since the algorithm is non-deterministic in nature, is there a way to set a seed value such that repeating the algorithm run on the same data with the same seed will always result in the same community assignments per vertex?


Integrating Inversify Sugar with Inversify React

I’m looking to integrate Inversify Sugar with Inversify React, specifically for using the React provider that requires a container to wrap the entire application.
Currently, I can access the global container using Inversify.globalContainer, but I'm facing a challenge since the AppModule's container appears to be different. Should I merge the two containers, or is there a more effective way to implement this?
Here’s how I intend to use the provider:
<InversifyProvider container={container.getContainer()}>{element}</InversifyProvider>;

as well as I have created containerService to underlying to Inversify
import "reflect-metadata";

import { interfaces, InversifySugar as Inversify, Newable } from "@commercexat/module-di";
import { ILoggerService, LoggerService } from "@commercexat/module-logger";

import { IContainerService } from "../interfaces";

/**
 * A service that wraps the InversifyJS container, providing methods
 * to manage dependency injection for various services in the application.
 */
export class ContainerService implements IContainerService {
  /**
   * The underlying InversifyJS container instance used for managing
   * bindings and resolutions of services.
   */
  private container: interfaces.Container;

  /**
   * Logger service used to log middleware-related messages and other information.
   * Initialized with the name of the current class for context.
   */
  private readonly logger: ILoggerService;

  /**
   * Initializes a new instance of the ContainerService.
   * Sets up an Inversify container to manage bindings and resolutions.
   * The default scope for services is set to Transient, meaning a new
   * instance will be created each time a service is requested.
   */
  constructor() {
    // Configure the Inversify instance
    Inversify.options.defaultScope = "Transient";
    Inversify.options.debug = process.env.NODE_ENV === "development";

    this.container = Inversify.globalContainer;

    // Initialize the logger service
    this.logger = new LoggerService(ContainerService.name);
  }

  /**
   * Initializes the InversifyJS container with the specified module.
   *
   * @param AppModule - The module class to be run within the InversifyJS container.
   */
  init(AppModule: Newable): void {
    Inversify.run(AppModule);
  }

  /**
   * Gets the underlying InversifyJS container instance.
   *
   * @returns {interfaces.Container} The InversifyJS container instance.
   */
  getContainer(): interfaces.Container {
    return this.container;
  }

  /**
   * Returns all registered bindings in the container.
   * This method provides insight into what services have been registered.
   *
   * @returns {Array<{ class: string | symbol; name: string }>} An array of objects containing binding symbols and their associated class names.
   */
  public getBindings(): Array<{ class: string | symbol; name: string }> {
    // @ts-ignore
    return this.container?._bindingDictionary?._map;
  }

  /**
   * Resolves dependencies and creates a new instance of a service.
   * Similar to resolve, but primarily used for service identifiers.
   * Caches the created instance to improve performance.
   *
   * @template T
   * @param {interfaces.ServiceIdentifier<T>} identifier - The unique identifier for the service.
   * @returns {T} A new instance of the requested service.
   */
  public create<T>(identifier: interfaces.ServiceIdentifier<T>): T {
    // Retrieve a new instance from the container
    const instance = this.container.get<T>(identifier);

    // Log the creation of the instance
    this.logger.info(`Created instance of ${ContainerService.getSymbol(identifier as symbol)}`);
    return instance;
  }

  /**
   * Resolves dependencies for an instance based on the provided service class.
   * This method caches the resolved instance to improve performance on subsequent calls.
   * If an instance is already cached, it retrieves that instance instead of resolving a new one.
   *
   * @template T
   * @param {new (...args: any[]) => T} service - The class constructor for the service to resolve.
   * @returns {T} A new or cached instance of the requested service.
   */
  public resolve<T>(service: new (...args: any[]) => T): T {
    const identifier = service.name;

    // Resolve a new instance if not cached
    const instance = this.container.resolve<T>(service);

    // Log the successful resolution of the instance
    this.logger.info(`Resolved instance of ${ContainerService.getSymbol(identifier as string)}`);
    return instance;
  }

  /**
   * Binds a service to the container with a specified identifier and caches the instance.
   *
   * @template T
   * @param {interfaces.ServiceIdentifier<T>} identifier - A unique string identifier for the service.
   * @param {new () => T} service - The class constructor for the service being bound.
   */
  public bind<T>(identifier: interfaces.ServiceIdentifier<T>, service: new () => T): void {
    // Bind the service to the container
    this.container.bind<T>(identifier).to(service);

    // Log the binding of the service
    this.logger.info(`Bound ${ContainerService.getSymbol(identifier as symbol)} to service ${service.name}`);
  }

  /**
   * Rebinds a service in the container with a specified identifier.
   * This updates the binding for the service and clears the cached instance.
   *
   * @template T
   * @param {interfaces.ServiceIdentifier<T>} identifier - The unique string identifier for the service.
   * @param {new () => T} service - The new class constructor for the service being rebound.
   */
  public rebind<T>(identifier: interfaces.ServiceIdentifier<T>, service: new () => T): void {
    // Rebind the service to the container
    this.container.rebind<T>(identifier).to(service);

    // Log the rebinding of the service
    this.logger.info(`Rebound ${ContainerService.getSymbol(identifier as symbol)} to service ${service.name}`);
  }

  /**
   * Unbinds a service from the container based on the specified identifier.
   * This also clears the cached instance for that service, if it exists.
   *
   * @param {interfaces.ServiceIdentifier<any>} identifier - The unique string identifier for the service.
   */
  public unbind(identifier: interfaces.ServiceIdentifier<any>): void {
    // Unbind the service from the container
    this.container.unbind(identifier);

    // Log the unbinding of the service
    this.logger.info(`Unbound service ${ContainerService.getSymbol(identifier as symbol)}`);
  }

  /**
   * Unbinds all services from the container.
   * This also clears all cached instances, ensuring a fresh state.
   */
  public unbindAll(): void {
    // Unbind all services from the container
    this.container.unbindAll();

    // Log the unbinding of all services
    this.logger.info(`Unbound all services`);
  }

  /**
   * Extracts a meaningful string from a Symbol's description or returns the string itself.
   *
   * @param {symbol | string} symbol - The Symbol from which to extract the description, or a string.
   * @returns {string} The description string of the Symbol, or the string itself if provided.
   * @throws {TypeError} Will throw an error if the input is neither a Symbol nor a string.
   */
  public static getSymbol(symbol: symbol | string): string {
    if (typeof symbol === "symbol") {
      // Removes "Symbol(" and ")"
      const description = symbol.toString().slice(7, -1);
      return description.replace(/([A-Z])/g, "$1"); // Removes spaces before uppercase letters
    } else if (typeof symbol === "string") {
      // Return the string directly
      return symbol;
    } else {
      throw new TypeError("Input must be a Symbol or a string");
    }
  }
}

/**
 * Initializes a new instance of the ContainerService.
 * This instance will be used for managing dependency injection throughout the application.
 */
export const container = new ContainerService();

Let me rephrase the solution you are looking for: using Inversify Sugar in React.
Since containers are in charge of managing the state of dependencies, all we need is a bridge between containers and React components (to make dependencies reactive). Therefore, I think it is more appropriate to access dependencies through hooks than using a provider.
Below I show you a couple of examples of how I use Inversify Sugar in React without needing to use other packages like inversify-react.

Create a hook for each dependency.

import { getModuleContainer,} from "inversify-sugar";
import MyModule from "./MyModule"

const myModuleContainer= getModuleContainer(MyModule);

export const useMyService = () => {
  const [myService] = useState(
    myModuleContainer.getProvided(MyService)
  );

  return myService;
}

Create reusable hooks to get provided and imported dependencies from a module.

import { ModuleContainer } from "inversify-sugar";
import { useMemo } from "react";

export const useGetProvided = <T>(container: ModuleContainer, identifier: any): T => {
  const instance = useMemo(
    () => container.getProvided<T>(identifier),
    [container, identifier]
  );

  return instance;
};

export const useGetImported = <T>(container: ModuleContainer, identifier: any): T => {
  const instance = useMemo(
    () => container.getImported<T>(identifier),
    [container, identifier]
  );

  return instance;
};

⚠ Take into account Inversify Sugar is a hierarchical dependency system, like Angular or Nest. So you will have to get the dependencies from the module they belong to.
I hope I have been helpful.

@carlossalasamper, there's a package called inversify-react that supports both the app provider and hooks options. My goal is to have a single container that manages my entire app. Initially, I created a single container and attached all services to it, but the approach used by inversify-react and inversify-sugar seems more efficient. How can I access a single container that encompasses all global dependencies and the AppModule dependencies, which I can then pass to the provider container? Your approach of creating a hook with getModuleContainer(MyModule) does not allow access to the global Inversify.globalContainer.

@abdokouta
My advice is not to try to combine the two libraries (inversify-sugar and inversify-react), it just adds complexity.

If you want to use a hierarchical API like Angular or Nest, then go with Inversify Sugar (and if you're going to use only one container, then register all dependencies in the AppModule).
Since you only want to use one container, it might be best for you to use inversify-react alone.

Here is an example of a hook with a single module/container in Inversify Sugar.
I think I have to stop exposing the property InversifySugar.globalContainer to don't confuse developers. Because I use tags under the hood to organize dependencies inside. Then you can't access dependencies as you normally do it in Inversify.
import { getModuleContainer,} from "inversify-sugar";
import AppModule from "./AppModule"

const appModuleContainer = getModuleContainer(AppModule);

export const useMyService = () => {
  const [myService] = useState(
    appModuleContainer.getProvided(MyService)
  );

  return myService;
}

thank you @carlossalasamper  for your response, can I have full examples for ClassA and ClassB and app.ts for ini example as well as TSX component to resolve the di of ClassA and ClassB

@abdokouta take a look to https://github.com/carlossalasamper/react-clean-architecture

@carlossalasamper , thanks for the example! I have a follow-up question. If I want to use the LoggerModule in the HttpModule, should I add it to the HttpModule's imports array, as is typical in NestJS?
Additionally, if I do this, can I use @Resolve to inject the service provider? If the LoggerModule is not included in the imports array, will it throw an exception indicating that either the LoggerModule needs to be imported or the LoggerService needs to be provided?
Regarding injection, there are a couple of ways to do it:
Example 1: Constructor Injection
@Resolve(LoggerService) public readonly loggerService: ILoggerService
Example 2: Property Injection
@Resolve(LoggerService) protected loggerService!: ILoggerService
I want to be able to use both methods as long as the logic follows NestJS conventions. Is it applicable to do so?

@carlossalasamper any updates?


Update app versions

identity.apps.console.version: 2.5.13
identity.apps.myaccount.version: 2.2.3

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/6693329933

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/6693329933
Status: cancelled


Added format to manifest

Create a format settings that keeps track of when the on-disk/manifest format changes for backrest.  This is will determine whether backups are compatible.

Complete in commit 7509b01.


Docs: Align with AWS Advanced Technical Partner requirements

Adjust the documentation where necessary with the guidelines provided by AWS in order for lakeFS to comply with AWS' requirements to become an ATP.

Closing for now, will open again once it's relevant


Oneline whiteblock parsing fixes

Fixes https://github.com/lightscript/lightscript/issues/32

Allow parsing of single statements in oneline whiteblocks
Change if and arrow parsing to call new subroutine
Allow ASI after existing semicolons and in other edge cases
Add class to startsExpr so ClassExpressions don’t get parsed as stmts
Added fixtures

Hm, what should be done about this:
f() ->
  a = if x: y else: return z

function f() {
  const a = x ? y : function () {
    return z;
  }();
  return a;
}

This is not technically a parsing problem but the output is semantically incorrect. Should we disallow returns in here at parse time, or defer to compile time?

Great question. If we can do at parse time that's better, compile time is ok too.
My guess is that we could do this by setting this.state.inFunction (or w/e) to false within such contexts... but there are a number of multiline-expression contexts in LightScript, and unifying them might make sense.

Trying to use parseStatement as suggested breaks a number of JS fixtures. Most are in the following vein:
  index › es2017/async functions/10
  Error: /Users/wcj/dev/lightscript-devkit/packages/babylon-lightscript/test/fixtures/es2017/async-functions/10/actual.js: 26 !== 27 (end/expression/1/body/program)
    runTest (test/utils/runFixtureTests.js:169:13)
    Test.fn (test/utils/runFixtureTests.js:107:20)

The issue is that parseExpressionStatement is scooping up the ; into the expression node somehow (which is probably incorrect)
There are a select few stranger ones that seem like legitimate breakages, though:
f(a, async(x, y) => await [x, y], b)

  index › es2017/async functions/26
  Error: /Users/wcj/dev/lightscript-devkit/packages/babylon-lightscript/test/fixtures/es2017/async-functions/26/actual.js: array length mismatch 3 != 2 (arguments/expression/0/body/program)
    runTest (test/utils/runFixtureTests.js:169:13)
    Test.fn (test/utils/runFixtureTests.js:107:20)

The issue here is that lambdas in JS are parsed with parseMaybeAssign -- switching to parseStatement here is causing parseExpression to interpret that inner function as a lambda returning a SequenceExpression -- as opposed to the outer function call with 3 arguments.
This seems like quite a can of worms, and my original approach doesn't break any of these things. I'm inclined to stick with it unless you can see another way through.

OK, I think this pr is in much better shape now and the case of illegal return etc. inside expressions should be handled better. Should be good to review more closely.

Sounds like you may have some better ideas than I do about how to do this, so I think I'll kick it back your way. Branch will be open if you want any of the code.

Hey, sorry I didn't see that earlier comment. Thanks for taking the time to explain

@rattrayalex
I applied the fixes for empty whiteblocks to this branch. Because of the divergences, the changes were basically not directly mergeable.
I think you should consider reverting the merge from last night and merging this branch instead (or just resolve conflicts with my side)

Cool, I can try to resolve the conflicts

@wcjohnson would you be willing to squash commits?

@rattrayalex Yes, when I get a moment I will clean up the comments you left and then I can squash after a final go ahead

@rattrayalex
Upon testing, removing that node.body = this.startNode() broke things and was incorrect. We need to start a node there because the whiteblock body parser uses that node as the place to insert the body, and that location includes the arrow token.
I clarified the code a little bit but semantically it's the same.

@rattrayalex Comments have been addressed, let me know if anything else needs doing before the squash

@rattrayalex
I think one of my comments got eaten. Re your comments on:
  // oneline statement case
  node.body = [this.parseStatement(true)];
  node.directives = [];
  this.addExtra(node, "curly", false);
  return this.finishNode(node, "BlockStatement");

According to babel-types, a BlockStatement requires an array as its body. We could cut out the BlockStatement and just return parseStatement but this breaks two things:

There is a fixup later down the line in parseArrowBody that turns anything not a BlockStatement as an expression. Returning a vanilla statement here breaks that check and breaks a lot of fixtures by falsely flagging them as expressions.

Calling parseStatement there causes the arrow token not to be included in the arrow body's source location. I am not sure whether that's right or not, but heretofore, we have been parsing the arrow token as being part of the arrow body when it's a whiteblock.

Cool, thanks for explaining! That definitely makes sense. I'll give another look but anticipate being 👍

Squashing this is actually a little tricky because it straddles the merge and unmerge of babylon 7. Let me see what I can do.

@rattrayalex OK, that was an ugly rebase but I think I got it right, should be squashed now.

Woohoo! This was a heavy lift. Great work @wcjohnson and thanks for putting up with all my (sometimes ignorant) asks.


Tests

I set up a round-trip test for an ontology that contains example axioms for all OWL constructors.
I added a simple Makefile that

builds ldtab.jar,
imports & exports the test ontology,
uses ROBOT to check whether the input ontology differs from the ontology generated by ldtab export.

I also added a GitHub action that runs make test.

We may want the GitHub action to fail when the output of robot diff is not Ontologies are identical.


WIP: Implement table fragment using markdown

What this PR does / why we need it:
Prototype of what a markdown table fragment would look like.
This implementation mimics the design and behavior of the frontmatter table fragment through the usage of shortcodes and search and replace through the html code of the markdown table. It's a really rough implementation right now but it's functional and gives a good idea of how this idea would proceed.
The good thing about this implementation is 1) this code can be moved to the table helper and every fragment using .Content can make use of it and 2) shortcodes are here. Using shortcodes in table has the advantage of allowing the user to use different data types along side each other, for example a button along an icon. Also 3) the old implementation of table fragment (table helper, frontmatter table) doesn't need to be removed.
If you have any suggestions please let me know.

[x] table fragment
[ ] table helper
[ ] item fragment
[ ] content fragment

Screenshots:

Which issue this PR fixes:
fixes #399
Release note:
Only table fragment is implemented right now.
- table, content, item:

The syna table shortcode is hard to pull off. I managed the css only table with a bit of hacking around, doing the syna shortcode is harder though. I've experimented a bit with partials and shortcodes and did a bit of hacking with them and have an idea on how to do this but I think I'm overthinking it. I'll try to work on it again tonight. If you have any ideas on this please let me know.

Anything that is still WIP here? Or good for a final review?

Ping ;)

I forgot about this PR. It's in WIP because I can't prevent the shortcode from rendering the code block and it's problematic. We can merge the PR and just go with it but I rather use the frontmatter table for now instead of messing the demo.

The new markdown compiler might help. Let me go through it.

Now with the ability to create our own inline shortcodes could we come up with a better table usage?
Keeping it open as our current table fragment is not good. We should deprecate it and use markdown tables, that are well designed.

this will be very helpful @stp-ip would it be implemented?


No proper highlighting when selecting a transaction

Recreate issue:
Accounts Receivable >> Sales Receipts >> Click on an existing transaction
There is no background color scheme that indicates that the line item is selected.

Thanks, Medhat. I will fix this.

This has been resolved! Push will be made post-approval 🚀

Light blue background on click
Light grey background on hover (optional)


Incorrect expression results with && and array and object access

This issue affects Angular 1.4.0. The 1.3.x branch appears unaffected.
Expressions which contain a && clause with a true thing on the left, and a null/undefined thing on the right which uses the form obj[index].key, return the true thing even though the second half of the && was falsy. See examples:
Expression: a[0].asdf && 72 (where a is undefined)
Expected: undefined
Actual: undefined
Expression: 72 && a[0].asdf (where a is undefined)
Expected: undefined
Actual: 72
This can even be reproduced with object literals:
Expression: 72 && ({})[0].asdf
Expected: undefined
Actual: 72
By inspecting the function returned by $parse(expression) it is fairly easy to see the faulty logic:
> $parse('72 && ({})[0].asdf').toString()
function (s,l,a,i){var v0,v1,v2,v3;v0=72;if(v0){v2={};if(v2!=null){v3=0;ensureSafeMemberName(v3,text);v1=ensureSafeObject(v2[v3],text);if(v1!=null){v0=v1.asdf;}}}return v0;}

Prettified:
function (s,l,a,i){
  var v0, v1, v2, v3;

  v0 = 72;

  if (v0) {
    v2 = {};

    if (v2 != null) {
      v3 = 0;
      ensureSafeMemberName(v3, text);
      v1 = ensureSafeObject(v2[v3], text);

      if (v1 != null) {
        v0 = v1.asdf;
      }
    }
  }

  return v0;
}

Tracing the execution and filling out the variables gives the following values:
v0 = 72
v1 = v2[v3] == {}[0] == undefined
v2 = {}
v3 = 0

Now notice the last nested if. Since v1 == undefined and !(undefined != null), that if is skipped and execution skips to the final line, where v0 = 72 is returned, despite v1 (the right-hand side of the &&) being undefined.

This should have been fixed on master (by #11989).
@royaldark, could you please verify that it is indeed fixed when using the latest build and close this issue if it works as expected ?

Actually, while https://github.com/angular/angular.js/pull/11989 handles this case correctly, i.e. $parse('true && not.there')() === undefined, it doesn't handle the case without the array/object access: $parse('true && notThere')() !== undefined.

This was fixed by #11989 and should make it into 1.4.1


feat(cli): added --version and --help options

added --version (-V) and --help (-h) options to the CLI for user interface.
--help output:
Usage: sort-package-json [OPTION...] [FILE...]
Sort npm package.json files. Default: ./package.json
Strings passed as files are parsed as globs.

  -c, --check                 check if FILES are sorted
  -q, --quiet                  don't output success messages
  -h, --help                   display this help and exit
  -V, --version              display the version and exit

This help menu can be easily modified in cli.js. It includes the option from #281, but that could be easily removed if so desired.
--version output:
sort-package-json 0.0.0-development

Or other such versions. The version is pulled from the project.json file in the cli script's directory.
This is found by reading process.env[1], using fs.realpathSync, to read symlinks when it's installed, and path.dirname to get the parent directory. From there it is simple to read the file and call JSON.parse.

Having just tested this revision on a windows OS, I can confirm that the help and version options work at the very least. It was not an extensive test, but I ran it with both options, ran it from a few different CWDs, and created a symlink and moved that around, and everything worked!

So, my most recent commit greatly improves the process of locating the project.json file for the version, however it doesn't work on windows because it produces a /C:/FILEPATH type file, while windows paths don't begin with /.
I can revert to the previous way, but that requires importing node:path and about 3 extra conversion steps.

This should now be ready for review. The try-catch block has been removed, and I removed the extra call/import to fileURLToPath. I have tested this on both Ubuntu Bash and Windows 11 command line(through node cli.js) from many different CWDs and even through a symlink.

Reopening this PR according to @fisker's advice to merge this PR seperate to #283


Go team quiet weeks December 23–January 3: issue tracker responses will be delayed

The issue tracker will be quiet from December 23 to January 3 to let Go team members and contributors disconnect and either recharge for a bit or do focused, deep work.
For more details see the Wiki or previous announcements like #50241.

Related Issues

Go team quiet week Oct 7–11: issue tracker responses will be delayed #69786 (closed)
Go team quiet week: issue tracker responses will be delayed #59147 (closed)
Go team quiet week September 11 to 15: issue tracker responses will be delayed #62525 (closed)
Go team quiet weeks: issue tracker responses will be delayed #50241 (closed)
Go team quiet week: issue tracker responses will be delayed #48615 (closed)
Go team quiet weeks: issue tracker responses will be delayed #46934 (closed)

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)


sitemap.xml includes unrounded priority 0.3999999999999999

Where to find the issue
https://www.coronawarn.app/sitemap.xml
Describe the issue
The autogenerated https://www.coronawarn.app/sitemap.xml includes entries with an unrounded <priority>0.3999999999999999</priority> entry such as:
    <url>

        <loc>https://coronawarn.app/de/faq/results/</loc>

        <lastmod>2022-07-21T11:46:46.438Z</lastmod>

        <priority>0.3999999999999999</priority>

    </url>

The current priority calculation yields 1, 0.8, 0.6, 0.3999999999999999, 0.19999999999999996 and 0 depending on the depth of the URL from the top level, although 0.19999999999999996 does not occur in practice because there are currently no URLs at this depth on cwa-website.
Steps to reproduce
Execute npm run build
Examine the file public/sitemap.xml in the local cwa-website repository
Note entries with <priority>0.3999999999999999</priority>
Expected behaviour
The priority is expected to go down exactly in 0.2 steps i.e. 1, 0.8, 0.6, 0.4, 0.2 and 0 according to the depth of the URL from the top level of the web.
Instead of priority 0.3999999999999999 there should be a priority 0.4 shown.
Suggestion
Change the calculation https://github.com/corona-warn-app/cwa-website/blob/ca65a737858f606bc75be2f7063e5d90e11aba40/gulpfile.js#L488 to
return (10 - (entry.file.split('/').length - 1) * 2) / 10
See https://www.w3schools.com/js/tryit.asp?filename=tryjs_numbers_inaccurate3.
Reference
According to https://www.sitemaps.org/protocol.html
priority
optional
The priority of this URL relative to other URLs on your site. Valid values range from 0.0 to 1.0. This value does not affect how your pages are compared to pages on other sites—it only lets the search engines know which pages you deem most important for the crawlers.
The default priority of a page is 0.5.

PR #3044 submitted to resolve this issue.


Update index.md.njk

Hope this works for everyone: Using Date of birth as the only example for Enter a real date of birth works fine for that but not for other types of date e.g. Enter a real date you got the property or even adjusted for grammar Enter a real date for when you got the property (note I had to add for when in) whereas [whatever it is] must be a real date works like The date you got the property must be a real date

Thanks for raising this @nubz 👍 We'll discuss it at our team triage session next week to determine next steps.

Hi Alistair. We're going to have a bit of a think about the best way to tweak this content, so we'll close this PR and raise a new issue that we'll work on soon. Hope that's all ok - thank you again for raising this with us.


Proposal to develop a payout bot for all Sora validator payouts each era

We propose to develop a payout bot for all Sora validator payouts each era. Details in VALIDATOR_PAYOUT_BOT.md

Although content is really good and the implementation of the bot could be helpful, the proposal would require following this formatting


Update getting URL path for AWS

In order to get the URL path for AWS, it is necessary to use rawPath attr as documented in the link below.
https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format
So I made this change in this PR.

Please check the build and then merge it. Thanks.


Added some minor proposed tweaks

Added a few clarifications in a couple of the paragraphs (User interface, application integration, password complexity and accessing user data). #ATCP

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

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

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

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

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

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

#sign-off

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


NP2vec Tutorial Bug

Describe the bug
I was following the NP2vec tutorial: https://github.com/NervanaSystems/nlp-architect/blob/master/tutorials/NP2vec/NP2vec_training.ipynb
When I tried to run the import step to get the nlp_architect.solutions module
for using set_expansion, the module never gets found on the import and
I get a ModuleNotFoundError message.
To Reproduce
Steps to reproduce the behavior:

Run from nlp_architect.solutions.set_expansion.prepare_data import load_parser, mark_noun_phrases in jupyter notebook

Expected behavior
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-2-313a79c068a7> in <module>
      3
      4 from nlp_architect.models.np2vec import NP2vec
----> 5 from nlp_architect.solutions.set_expansion.prepare_data import load_parser, mark_noun_phrases

ModuleNotFoundError: No module named 'nlp_architect.solutions'

**Environment setup: **

OS (Linux/Mac OS): Mac OS
Python version: 3.6 Conda Environment
Backend:

Additional context
I am running nlp-architect version 0.5.4

Hi @tahmidb, I fixed the tutorial (wrong paths), and it should work as expected.
Thanks!


Added installdesktop plugin

This plugin adds a hook script which is run before the main application in the AppImage.
The hook script intercepts an --install-desktop switch, and if provided, converts / parses the .desktop file and installs it into either the system folder or the user's .local folder.  It also copies the application icon across.
The resulting effect is "application.AppImage --install-desktop" puts the appropriate files in place so that the application appears in the linux start menu.
This has been tested on Ubuntu 22 and Ubuntu 20 with plasma desktop.

I doubt that this is incredibly useful. The AppImage community has had bad experiences with including desktop integration features within AppImages.
Does this implement a libappimage compatible algorithm?

You are probably right - I've been frustrated as for a non-technical user, getting things added to the start menu is complex.  It's not like having an 'install.exe' which puts the programs, data files and menu files in place.
The script is a simple bash one, and doesn't use any third party libraries.
Looking at go-appimage / appimaged, it looks like that achieves what is needed.  Shame that is not available as part of a standard distribution (at least on Ubuntu), so the user still needs to be quite technical.
Propose closure of this PR.

Please also check out AppImageLauncher, which is shipped as part of the default distro on KDE Neon and a few others.

For the record, this is documented in https://docs.appimage.org/user-guide/run-appimages.html#integrating-appimages-into-the-desktop.


SignUp Form and Logic

User registration functional, login upon signup happens automatically, working on login functionality next

add user functional


Contributing guide

Describe the Feature

improve README with contributing guide:

[ ] it should explain how commit lint works

what else?
Possible Implementations

Related Issues

https://github.com/react-native-community/react-native-share/pull/476

I think defining how you can run the project to ensure your changes are  ok would be a great addition. =D


ChatCompletionsOptionalParameters 'stop' should be a [String]? not a String?

As an optional param, an array of stop Strings is passed to OpenAI, not just a single stop String. This kills my main use case so hopefully it gets fixed soon!

Fixed release 0.8.0


Enable SSL on PostgreSQL connexions

Resolves https://github.com/travis-ci/travis-ci/issues/5753
Tested on staging: https://staging.travis-ci.org/BanzaiMan/travis_staging_test/builds/506970#L166

This is now outdated and/or no longer applicable.  Please holler if you believe otherwise!