[Android] Sometimes setupReactContextRunnable is run faster than maybeRecreateR…

Summary
Issues: Related to  #13439
PR: Related to  #23230
Sometimes setupReactContextRunnable runs faster than setupReactContextRunnable.
The code will proceed in the following order:

setupReactContext(reactApplicationContext);→ moveReactContextToCurrentLifecycleState();→
moveToResumedLifecycleState(true);

private synchronized void moveToResumedLifecycleState(boolean force) {
        ReactContext currentContext = getCurrentReactContext();
        if (currentContext != null) {
            // we currently don't have an onCreate callback so we call onResume for both transitions
            if (force ||
                    mLifecycleState == LifecycleState.BEFORE_RESUME ||
                    mLifecycleState == LifecycleState.BEFORE_CREATE) {
                Log.d(lhtag, "--moveToResumedLifecycleState: mCurrentActivity" + mCurrentActivity);
                currentContext.onHostResume(mCurrentActivity);
                Log.d(lhtag, "--moveToResumedLifecycleState: mCurrentActivity" + mCurrentActivity);
            }
        }
        mLifecycleState = LifecycleState.RESUMED;
    }

At this time, the value of mCurrentActivity is equal to null.
So,It will run currentContext.onHostResume(null);
Finally,other module run getCurrentActivity(),this value will reture null.
Changelog
[Android] [Fixed] - set value of activity before create reactContext
Test Plan
Everything should run as usual.And Fix this Bug #13439 .

Also i am confused that setCurrentActivity is not  be used.
If setupReactContextRunnable runs faster than maybeRecreateReactContextRunnable,the value of activity is null from now on.Because of setupReactContextRunnable and  maybeRecreateReactContextRunnable are asynchronous.

@matthargett
I'm not change iOS.But ci is warming.--->ci/circleci: test_ios

@matthargett
Also we should change doc of android.
integration-with-existing-apps
public class MyReactActivity extends Activity implements DefaultHardwareBackBtnHandler {
    private ReactRootView mReactRootView;
    private ReactInstanceManager mReactInstanceManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mReactRootView = new ReactRootView(this);
        mReactInstanceManager = ReactInstanceManager.builder()
                .setApplication(getApplication())
+              .setCurrentActivity(activity)
                .setBundleAssetName("index.android.bundle")
                .setJSMainModulePath("index")
                .addPackage(new MainReactPackage())
                .setUseDeveloperSupport(BuildConfig.DEBUG)
                .setInitialLifecycleState(LifecycleState.RESUMED)
                .build();
        // The string here (e.g. "MyReactNativeApp") has to match
        // the string in AppRegistry.registerComponent() in index.js
        mReactRootView.startReactApplication(mReactInstanceManager, "MyReactNativeApp", null);

        setContentView(mReactRootView);
    }

    @Override
    public void invokeDefaultOnBackPressed() {
        super.onBackPressed();
    }
}

I didn't review what's the actual bug, but I just want to point out that there are use cases of creating a ReactInstanceManager outside of an activity context. Requiring activity be set initially would break that use case.
For example in a brownfield app where not all activities are in RN, before the user navigates to a ReactActivity to speed things up, we can create ReactInstanceManager on the background, save it in an instance variable, then once the activity is launched we use that ReactInstanceManager already prepared.

Similarly I don't understand how HeadlessJsTaskService where you pass null for activity would work after this change. Does it rely on that ReactNativeHost will always be creating a ReactInstanceManager first with an activity and then HeadlessJsTaskService will reuse the same ReactInstanceManager? If so that may not always be true either.

@hey99xx

Please observe its running order

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mReactRootView = new ReactRootView(this);
        mReactInstanceManager = ReactInstanceManager.builder()
                .setApplication(getApplication())
                .setBundleAssetName("index.android.bundle")
                .setJSMainModulePath("index")
                .addPackage(new MainReactPackage())
                .setUseDeveloperSupport(BuildConfig.DEBUG)
                .setInitialLifecycleState(LifecycleState.RESUMED)
                .build();
        // 注意这里的MyReactNativeApp必须对应“index.js”中的
        // “AppRegistry.registerComponent()”的第一个参数
        mReactRootView.startReactApplication(mReactInstanceManager, "MyReactNativeApp", null);

        setContentView(mReactRootView);
    }

startReactApplication ->
createReactContextInBackground ->
recreateReactContextInBackgroundInner ->
recreateReactContextInBackgroundFromBundleLoader ->
recreateReactContextInBackground ->
runCreateReactContextOnNewThread ->
mCreateReactContextThread ->
setupReactContext ->
moveReactContextToCurrentLifecycleState ->
moveToResumedLifecycleState(true) ->
currentContext.onHostResume(mCurrentActivity)

In moveToResumedLifecycleState(true) -> currentContext.onHostResume(mCurrentActivity), we will pass mCurrentActivity to currentContext, but what if mCurrentActivity is null at this time?
We can know that setupReactContext is asynchronous.
We set the value of mCurrentActivity through the onHostResume of ReactInstanceManager.

In the past, reactInstanceManager.builder() was not call setCurrentActivity.
So in ReactInstanceManager, the value of mCurrentActivity is always null, and only wait until mReactInstanceManager.onHostResume(this, this) is executed to set value of mCurrentActivity

Set the value of mCurrentActivity of mReactInstanceManager here.
Before this, the value of mCurrentActivity is null.
@Override
protected void onResume() {
    super.onResume();

    if (mReactInstanceManager != null) {
        mReactInstanceManager.onHostResume(this, this);
    }
}

#Summary
Sometimes the moveToResumedLifecycleState in startReactApplication is executed first than mReactInstanceManager.onHostResume(this, this);.
At this time, the value of mCurrentActivity is null.
So it will call currentContext.onHostResume(null)
private synchronized void moveToResumedLifecycleState(boolean force) {
        ...
        // at this time,the value of mCurrentActivity is null
        currentContext.onHostResume(mCurrentActivity);
        ...
    }

So the value obtained by other modules executing getCurrentActivity is null
public @Nullable Activity getCurrentActivity() {
    if (mCurrentActivity == null) {
      return null;
    }
    return mCurrentActivity.get();
  }

We are asynchronous to set the value of mCurrentActivity in ReactInstanceManager!!!!!!
We are asynchronous to set the value of mCurrentActivity in ReactInstanceManager!!!!!!
We are asynchronous to set the value of mCurrentActivity in ReactInstanceManager!!!!!!
We are asynchronous to set the value of mCurrentActivity in ReactInstanceManager!!!!!!
We are asynchronous to set the value of mCurrentActivity in ReactInstanceManager!!!!!!

My English is very poor, please carefully observe the execution order and changes in mCurrentActivity.

**startReactApplication** ->
createReactContextInBackground ->
recreateReactContextInBackgroundInner ->
recreateReactContextInBackgroundFromBundleLoader ->
recreateReactContextInBackground ->
runCreateReactContextOnNewThread ->
mCreateReactContextThread ->
setupReactContext ->
moveReactContextToCurrentLifecycleState ->
moveToResumedLifecycleState(true) ->
currentContext.onHostResume(mCurrentActivity)

and
@Override
protected void onResume() {
    super.onResume();

    if (mReactInstanceManager != null) {
        mReactInstanceManager.onHostResume(this, this);
    }
}

I understand onHostResume is called with null and looks like a bug, but regardless of that you should attempt to fix a bug in a way considering other use cases:
For your flow:

moveReactContextToCurrentLifecycleState ->
moveToResumedLifecycleState(true) ->
currentContext.onHostResume(mCurrentActivity)

moveReactContextToCurrentLifecycleState will call moveToResumedLifecycleState only if it's at LifecycleState.RESUME state:
https://github.com/facebook/react-native/blob/be282b5287f7eecf8a3fd14b06ab36454dbba5fe/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java#L693-L697
But you can call ReactInstanceManager.builder().setInitialLifecycleState(LifecycleState.BEFORE_CREATE); then your initial state isn't LifecycleState.RESUME and will not reach moveToResumedLifecycleState until mReactInstanceManager.onHostResume(this, this); is called.
So maybe you can improve code by:
+ if (mInitialLifecycleState == LifecycleState.RESUME) {
    Assertions.assertNotNull(
         mCurrentActivity,
-        "activity property has not been set with this builder");
+        "activity needs to be set if initial lifecycle state is resumed");
+ }

You can see that by default .setInitialLifecycleState(LifecycleState.BEFORE_CREATE) is already called.
So your problem only happens if you called .setInitialLifecycleState(LifecycleState.RESUMED) manually.
https://github.com/facebook/react-native/blob/b002df945b267c6e36aa1041397ffd1c73167037/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java#L66-L76

I understand onHostResume is called with null and looks like a bug, but regardless of that you should attempt to fix a bug in a way considering other use cases:
For your flow:

moveReactContextToCurrentLifecycleState ->
moveToResumedLifecycleState(true) ->
currentContext.onHostResume(mCurrentActivity)

moveReactContextToCurrentLifecycleState will call moveToResumedLifecycleState only if it's at LifecycleState.RESUME state:
react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java
Lines 693 to 697 in be282b5
private synchronized void moveReactContextToCurrentLifecycleState() {
if (mLifecycleState == LifecycleState.RESUMED) {
moveToResumedLifecycleState(true);
}
}
But you can call ReactInstanceManager.builder().setInitialLifecycleState(LifecycleState.BEFORE_CREATE). Then your initial state isn't LifecycleState.RESUMED and will not reach moveToResumedLifecycleState until mReactInstanceManager.onHostResume(this, this); is called.
So maybe you can improve code by:
+ if (mInitialLifecycleState == LifecycleState.RESUMED) {
    Assertions.assertNotNull(
         mCurrentActivity,
-        "activity property has not been set with this builder");
+        "activity needs to be set if initial lifecycle state is resumed");
+ }

You can see that by default .setInitialLifecycleState(LifecycleState.BEFORE_CREATE) is already called.
So your problem only happens if you called .setInitialLifecycleState(LifecycleState.RESUMED) manually.
react-native/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java
Lines 66 to 76 in b002df9
protected ReactInstanceManager createReactInstanceManager() {
ReactMarker.logMarker(ReactMarkerConstants.BUILD_REACT_INSTANCE_MANAGER_START);
ReactInstanceManagerBuilder builder = ReactInstanceManager.builder()
.setApplication(mApplication)
.setJSMainModulePath(getJSMainModuleName())
.setUseDeveloperSupport(getUseDeveloperSupport())
.setRedBoxHandler(getRedBoxHandler())
.setJavaScriptExecutorFactory(getJavaScriptExecutorFactory())
.setUIImplementationProvider(getUIImplementationProvider())
.setJSIModulesPackage(getJSIModulePackage())
.setInitialLifecycleState(LifecycleState.BEFORE_CREATE);

You're right.
But docs is said that integration-with-existing-apps-Android .
public class MyReactActivity extends Activity implements DefaultHardwareBackBtnHandler {
    private ReactRootView mReactRootView;
    private ReactInstanceManager mReactInstanceManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mReactRootView = new ReactRootView(this);
        mReactInstanceManager = ReactInstanceManager.builder()
                .setApplication(getApplication())
                .setBundleAssetName("index.android.bundle")
                .setJSMainModulePath("index")
                .addPackage(new MainReactPackage())
                .setUseDeveloperSupport(BuildConfig.DEBUG)
                .setInitialLifecycleState(LifecycleState.RESUMED)
                .build();
        // The string here (e.g. "MyReactNativeApp") has to match
        // the string in AppRegistry.registerComponent() in index.js
        mReactRootView.startReactApplication(mReactInstanceManager, "MyReactNativeApp", null);

        setContentView(mReactRootView);
    }

    @Override
    public void invokeDefaultOnBackPressed() {
        super.onBackPressed();
    }
}

It's call setInitialLifecycleState(LifecycleState.RESUMED).
So.this bug only happen Integration with Existing Apps-Android

@hey99xx
We are asynchronous to set the value of mCurrentActivity in ReactInstanceManager!!!!!!
Execute first
@Override
protected void onResume() {
    super.onResume();

    if (mReactInstanceManager != null) {
        mReactInstanceManager.onHostResume(this, this);
    }
}

Post execution
@Override
protected void onResume() {
    super.onResume();

    if (mReactInstanceManager != null) {
        mReactInstanceManager.onHostResume(this, this);
    }
}

I have a place before I said something wrong.
moveToResumedLifecycleState(true) is  run faster than mReactInstanceManager.onHostResume(this, this);
At this time,the state is LifecycleState.RESUMED,and also the value of mCurrentActivityis null.
So it caused this bug.#13439

@hey99xx
I have change my pr.
Please review my code again.

Also we should change doc of android.
integration-with-existing-apps-android
public class MyReactActivity extends Activity implements DefaultHardwareBackBtnHandler {
    private ReactRootView mReactRootView;
    private ReactInstanceManager mReactInstanceManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mReactRootView = new ReactRootView(this);
        mReactInstanceManager = ReactInstanceManager.builder()
                .setApplication(getApplication())
+               .setCurrentActivity(this)
                .setBundleAssetName("index.android.bundle")
                .setJSMainModulePath("index")
                .addPackage(new MainReactPackage())
                .setUseDeveloperSupport(BuildConfig.DEBUG)
                .setInitialLifecycleState(LifecycleState.RESUMED)
                .build();
        // The string here (e.g. "MyReactNativeApp") has to match
        // the string in AppRegistry.registerComponent() in index.js
        mReactRootView.startReactApplication(mReactInstanceManager, "MyReactNativeApp", null);

        setContentView(mReactRootView);
    }

    @Override
    public void invokeDefaultOnBackPressed() {
        super.onBackPressed();
    }
}

I'll approve the PR but I'm neither working for FB nor a maintainer for react-native so you'll wait for someone else's approval.

Also we should change doc of android.

Agreed. Do you want to send a pull request to https://github.com/facebook/react-native-website/blob/master/docs/integration-with-existing-apps.md too?

I'll approve the PR but I'm neither working for FB nor a maintainer for react-native so you'll wait for someone else's approval.

Also we should change doc of android.

Agreed. Do you want to send a pull request to https://github.com/facebook/react-native-website/blob/master/docs/integration-with-existing-apps.md too?

哈哈,我刚刚提交了这个 PR#792.
请帮我看一下.谢谢!!!

@mdvacca @matthamil
Please review again.

@mdvacca
I update Summary and ChangeLog
Please review again.

Yeah it seems like this is definitely a breaking change that causes a ton of failures at FB, so we cannot merge this one.

Yeah it seems like this is definitely a breaking change that causes a ton of failures at FB, so we cannot merge this one.

Sorry.i can't find any error on master.

Here is the trace:
java.lang.AssertionError: activity needs to be set if initial lifecycle state is resumed
	at com.facebook.infer.annotation.Assertions.assertNotNull(Assertions.java:35)
	at com.facebook.react.ReactInstanceManagerBuilder.build(ReactInstanceManagerBuilder.java:250)
	at com.facebook.react.testing.ReactAppTestActivity$3.run(ReactAppTestActivity.java:261)
	at android.os.Handler.handleCallback(Handler.java:751)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:154)
	at android.app.ActivityThread.main(ActivityThread.java:6077)
	at java.lang.reflect.Method.invoke(Native Method)

It seems like the ReactAppTestActivity might need some changes?

Here is the trace:
java.lang.AssertionError: activity needs to be set if initial lifecycle state is resumed
	at com.facebook.infer.annotation.Assertions.assertNotNull(Assertions.java:35)
	at com.facebook.react.ReactInstanceManagerBuilder.build(ReactInstanceManagerBuilder.java:250)
	at com.facebook.react.testing.ReactAppTestActivity$3.run(ReactAppTestActivity.java:261)
	at android.os.Handler.handleCallback(Handler.java:751)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:154)
	at android.app.ActivityThread.main(ActivityThread.java:6077)
	at java.lang.reflect.Method.invoke(Native Method)

It seems like the ReactAppTestActivity might need some changes?

I'm so sorry.
Please review again.
@hey99xx  @cpojer

It seems like the only thing in our way is one more internal test that is now failing. I'm unfortunately not an Android expert so I'm unsure how to get the current activity so I can set it on the builder. All I seem to have available is an InstrumentationRegistry (from android.support.test.InstrumentationRegistry) or an InstrumentationTestCase (from android.test.InstrumentationTestCase). Do you have any idea about how I could patch up my test?
It does seem that part of the test is to wait for a ReactContext to be initialized asynchronously, so I'm unsure whether this can be fixed :O

InstrumentationTestCase

Maybe is that?
        Activity activity = (Activity)InstrumentationRegistry.getTargetContext();;
        build.setCurrentActivity(activity);

Related to Get context of test project in Android junit test case

I can't find other info for this pr because The current problem is that this test is internal .
Could you please tell what to do next?

@RoJoHub sorry I was away last week so I couldn't get to this. I just tried your proposed change but now it causes an issue when destroying the instance manager: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.facebook.react.ReactInstanceManager.destroy()' on a null object reference :(

Now the error prompts that the onDestory method is called on a null object.
The current information can't make me locate the error.
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.facebook.react.ReactInstanceManager.destroy()' on a null object reference

By the way ,It's hard to locate where the error is.
Beacause I don't know what happened to the internal test.

I'm sorry for making this hard but I'm not an expert on this part of the codebase so it's a bit hard. I did the cast as you suggested but maybe it didn't work properly and it is now setting the wrong thing as the activity, that then later crashes? Do you have any suggestions on how I could figure this out properly?

Case 1: ActivityInstrumentationTestCase2
If We extend ActivityInstrumentationTestCase2.The generics  is  class of activity.
For example :extends ActivityInstrumentationTestCase2<ReactAppTestActivity>
https://github.com/facebook/react-native/blob/b41ce43c07c038aed88f07b0aa5fb5a8f6374b47/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstrumentationTest.java#L26-L49
If we want get activity,just call Activity
Activity activity = getActivity();

Case 2: AndroidJUnit4.class
If an annotation  is AndroidJUnit4.class.
we should set a activity that we want test.
@Rule public ActivityTestRule<Activity> mActivityRule = new ActivityTestRule<>(Activity.class);

If we want get activity,just call mActivityRule.getActivity()
Activity activity = mActivityRule.getActivity();

https://github.com/facebook/react-native/blob/be282b5287f7eecf8a3fd14b06ab36454dbba5fe/ReactAndroid/src/androidTest/java/com/facebook/react/tests/core/ReactInstanceManagerTest.java#L25-L37
Case 3: InstrumentationTestCase & InstrumentationRegistry
public Activity startActivitySync (Intent intent)
[startActivitySync(https://developer.android.com/reference/android/app/Instrumentation.html#startActivitySync(android.content.Intent))
        Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
        Intent intent = new Intent();
        intent.setClass(instrumentation.getTargetContext(), Activity.class);
        Activity activity =InstrumentationRegistry.getInstrumentation().startActivitySync(intent);

@cpojer

Thanks to @makovkastar who fixed the internal issue we were having I was finally able to land this Pull Request. I want to apologize again for how long it took.


Update the screenshots in the Readme

I'm thinking that there may be someone running this panel and is able to make some up-to-date screenshots?
That would be awesome. :)

Done ❤


Only allow timezone with name

In case we need to serialize datetime object timezone aware with FixedOffset only
and no timezone name, now this will fail gracefully in sender side and not in receiver
side.

Superseded by https://github.com/deliveryhero/lymph/pull/249/files


NetNewsWire is not able to sync read articles and subscriptions

I also dont see the NetNewsWire Directory in the icloud drive in my macos. I think it used to be there. When I look at the accounts in preferences the icloud account is active on both macos and ios.
Not sure what other information that I should provide.

What do you mean by "NetNewsWire Directory"? We don't use iCloud Drive for anything in NetNewsWire, so there shouldn't be anything there anyway.

Oh ok. I thought it used one like some other apps. Anyway, What should I do to debug this problem? Should I reinstall the apps? What information should I provide?

@vincode-io I went ahead and deleted my macos newswire icloud account and added it again. Now its able to sync properly. I am not sure what caused the issue in the first place. It could be because my macos ran out of storage space many times this last 2 weeks and I had to delete some large media files to get some space. Maybe NetNewsWire was not able to download the sync data due to storage space issues.
Let me know what you think.

I honestly don't know what could have caused the problem. If you could provide some information about what you were seeing happen, I might be able to take a guess.


Update actions.py to fix the --quiet flag.

Signed-off-by: Matthew Heaton<EMAIL_ADDRESS>

Solves the issue #7


[Help] Setup on vercel

What I have done so far:

I forked this project and deployed it to Vercel.
After seeing some errors around Firebase I've set up a Firebase project and created a Firestore database.
I added the "NEXT_PUBLIC_FIREBASE" variables to Vercel environment

When I allow ALL read, write access in the Firestore rules, voting.poker is working fine.
As there is no documentation on how to do the setup exactly, I wanted to ask though:

Are these steps correct or is there any other method to get voting.poker running?
Is it possible to connect to Firestore without allowing access to ALL users? Something like:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

My goal would be to create some minimal Vercel guide for the next guy trying to set it up (PR) 😃

I've just updated the code to be easier to deploy on vercel 😄, now you just need an Ably key
https://ably.com/


Allow the use of Custom Endpoints\Proxies for OpenAI

Minor update that may help other that wish to use either custom end-points or an API proxy such as Cloudflare AI Gateway.
Apologies if this is inefficient or incomplete I can't code, used GPT-4 to guide me.
Why use an AI Gateway?

Caching (you need to enable this, but not really beneficial, due to the uniqueness of each query)
Improved Visibility (potentially a privacy issue for some), but useful during debugging
Ratelimiting

Another benefit is corporate accounts (e.g. my company provides me with an openai api key, but only via a company proxy)
I also have an implementation of this, but on the profile, rather than directly from process.env
https://gist.github.com/kmdavis/709b5cc34d73f14115fbd6cba19f54a4


Reworked NetBeans project to be based on the pom.xml rather than the …

…build.xml.
Maven pom.xml is the new default for organising NetBeans projects, but the structure of the gitblit source folder is unusual because of the placement of the bugtraq source in the tree and Maven does not support this by default. This change introduces Maven Build Helper plugin to integrate the additional source locations. This is preferable to using nbproject\project.xml because 1) there is no need to generate the classpath for that file from build.moxie and 2) the POM generated by build.moxie can be re-used almost as-is, with the following additional configuration.
Additional Maven Build Helper (add under build/plugins):
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>add-source-bugtraq</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>add-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>src/main/bugtraq</source>
                        </sources>
                    </configuration>
                </execution>
                <execution>
                    <id>add-test-source-bugtraq</id>
                    <phase>generate-test-sources</phase>
                    <goals>
                        <goal>add-test-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>src/test/bugtraq</source>
                        </sources>
                    </configuration>
                </execution>
                <execution>
                    <id>add-resources</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>add-resource</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <directory>src/main/resources</directory>
                                <targetPath>resources</targetPath>
                                <excludes>
                                    <exclude>**/junk/**</exclude>
                                </excludes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
                <execution>
                    <id>add-test-resources</id>
                    <phase>generate-test-resources</phase>
                    <goals>
                        <goal>add-test-resource</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <directory>src/test/resources</directory>
                                <targetPath>resources</targetPath>
                                <excludes>
                                    <exclude>**/junk/**</exclude>
                                </excludes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>

        </plugin>

Source configuration (add at the end of pom.xml):
<properties>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

Moxie frequently rewrites the pom.xml file. Your build plugin changes will be lost unless Moxie is patched somehow.


Dragging into some empty spaces doesn't re-order or move the element when it seems like it should

Not sure how exactly to describe this issue, so here's a demo: http://jsbin.com/kodedayizu/edit?html,css,js,output
To reproduce:
Drag one of the items from the top group into the bottom group, making sure that the cursor, once in the bottom group, only goes within the 50-or-so pixels immediately to the right of D.
Expected behaviour: When released, the element being dragged should be moved to the position after the D element (i.e. right where it was dragged to)
Actual behaviour: Releasing the cursor causes the element to remain in the top group. Dragging the item further right (so it is beyond the area it would drop into) or further left (so it is over the previous item in the group) is required to get the expected behaviour.
Here are a couple of screenshots (sorry about the lack of cursor, it doesn't seem to show in screenshots in ChromeOS. I'm dragging the B item).
Dragging to where I'd expect would trigger a move:

Dragging further horizontally to actually trigger a move:

#213 might be related, but there was no example or solution given for that, so I'm not sure.

http://recordit.co/p1GRWtsrlu — this confuses you?

Yeah, I expected that the entire container would be a target for the drops. It seems particularly counter-intuitive that the space where the item would end up is the space that doesn't trigger a move.
Here's a gif showing what I'm talking about:

Try dev-branch.

Great, it seems to be fixed. Thanks :smiley:

Looked into this more and it appears that the 1.8.0 release caused this to stop working again. It was working in 1.7.0 though. Looks like #1439 is open for this, so hopefully it will be resolved quickly.

@mrodrig It does indeed work, but it seems to be a failure of _detectDirection. You can specify the direction option as either vertical or horizontal (depending on your list) to solve this. Setting direction: 'horizontal' in the JSBin given by OP allows it to work as intended.
https://jsbin.com/nomulom/1/edit?html,css,js,output

@owen-m1 Ah, interesting. I've been running into this/testing via vuedraggable using a vertical direction for most drag-and-drop actions, so that's probably why. Setting horizontal definitely helps, but it's still not quite 100% since it requires the user to move the tag to an area that lines up horizontally with a current item, which might not always be the case.

@mrodrig Yes, this is not optimal. I am working on a solution. Please read my comment on the open issue.

I have the same issue with version 1.15.0
Items are blocks of various widths. I cant move a small block to an empty space after a bigger block unless i target the bigger block with the pointer.


ViewItemDecoration doesn't draw correctly if items are populated before RecyclerView.onMeasure() is called

Fixed.


Users sending feedback may not realize that it reveals the identity behind their wiki username

Some Mediawiki contributors would be at risk if their identity is revealed.
Problem: When WhistleblowerFromNorthKorea123 sends feedback about the app, the following is posted to the public mailing list:

'Kim Jong-un' via commons-app-android
-- Technical information --
API level: 30
Android version: 11
Device manufacturer: samsung
Device model: SM-G986B
Device: y2s
Network type: wifi
App version name: 3.1.1~1c9267ca0
User name: WhistleblowerFromNorthKorea123
Hi there is a typo in your SPARQL query.

Solution: I think we should show a toast like this when tapping "Feedback", while the email compose activity appears:
Please remove from this email any information that you are not comfortable sharing publicly.

(I just changed the group's settings so that email addresses are not visible anymore, please let me know if they are still visible to non-managers)

Some Mediawiki contributors would be at risk if their identity is revealed.

That's a good point.

Solution: I think we should show a toast like this when tapping "Feedback", while the email compose activity appears:

I wonder if a toast is enough for this. Shouldn't we show a warning of sorts in an dialog right after someone clicks the "Feedback" menu to ensure this isn't overlooked ? 🤔

(I just changed the group's settings so that email addresses are not visible anymore, please let me know if they are still visible to non-managers)

Nice move. I could confirm that the e-mail aren't visible via the Google Groups interface. But that makes me wonder, that setting doesn't help with hiding e-mails from someone who is a member and is subscribed to the receive e-mails from the group, right? I'm not saying the setting isn't helpful. I'm just trying to understand how much it helps us.

in a dialog

I agree!

that setting doesn't help with hiding e-mails from someone who is a member and is subscribed to the receive e-mails from the group

As an example, I just approved a feedback message about Huawei AppGallery. Would you mind letting me know whether you see the author's email address, and more generally what information you see about the author (I would check myself but as a group admin I may be seeing more than other members). Thanks a lot!

As an example, I just approved a feedback message about Huawei AppGallery. Would you mind letting me know whether you see the author's email address, and more generally what information you see about the author (I would check myself but as a group admin I may be seeing more than other members). Thanks a lot!

I was able to see the both sender's name and e-mail on that one. I even see the associated Google profile photo when I view using the Gmail website. I think that should answer the question. Do let me know if you were wondering if some other information was visible or not.

that setting doesn't help with hiding e-mails from someone who is a member and is subscribed to the receive e-mails from the group, right?

So, the answer to the above question turns out to be a yes which seems a bit concerning :-(

I think we have a couple of options:

We can switch to receiving feedback on our private mailing list instead (which is already used for logs and covered under the privacy policy)
We can use a dialog to warn the user, as suggested

Option 1 sounds like the most efficient for now. Any objection?
The email address is<EMAIL_ADDRESS>, it should be a fairly simple first issue :-)

Option 1 sounds like the most efficient for now. Any objection?

The only thing I'm concerned about using a private list is volunteers who might be active in the public list might not be able to help with handling / replying to feedback. To be honest, I haven't watched the public list so closely. So, if only the members of the private group handle replying to significant amount of feedback in public group, then there's nothing to worry 🙂

One thing just occurred to me. While Option 1 is indeed efficient for the short term and reduces the concern a bit, we would still need Option 2 for the long term as revealing identity (even to a limited set of members) is still something we should warn the users about.

I would prefer Option 2 personally, as the people with access to the private list are mostly devs who use it to access crash reports, and I can't easily add people to the list (due to WMF's requirements - they have to sign a NDA).

How about we send the technical information and message as a new section on some dedicated wiki page such as https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback?
Merits:

This avoids revealing the user's name, email address, Google profile pic.
This also avoids the step where the user has their email client open and must push "Send".
Subscribing would send Mediawiki notifications, rather than emails. Less familiar to most developers, but more familiar to wiki people and it does not force them to create a Google account.

Demerits:

People who are not logged in within the app can not send feedback.

Hmmm. I think if they are not logged in, they can still post on a wiki, but it will reveal their IP?
My main concern with this method is that we do sometimes get spam on our mailing list - not sure if that will persist if we use a wiki, but if it does it will look worse. I am open to trying it though. :)

The wiki form warns them that their IP will be visible, so I don't think it is a big problem. We could also disable feedback for non-logged in users (we already disable many menu items for them).
I believe that most spam we received is posted directly by email spam campaigns, not through the app.
In other words, spammers are spamming our Google Group's email address, without having ever installed the app.
Having a look right now, all spam messages do not have the Commons Android App Feedback format:

Makes sense! Happy to go with option 2 then if anyone wants to take it. I guess it is beginner-friendly, too. :)

Hello, I would like to tackle this issue. It's my first time contributing to OSS plus contributing to OSS is an assignment formy university. If it is assigned, i woud love some recommendations of other issues that need to be fixed. Thanks.

@GiwrgosTsifoutis It is yours, thanks a lot!
Your code will have to edit a wiki page. My tip is to look at the code of another feature that does the same thing: The "nominate for deletion" feature edits a wiki page to add a deletion nomination notice.

Thanks for the tip nicolas. Since this is my first time using Android Studio as well could someone tell me how to run the project and help me find where the code for the "nominate for deletion" feature is located? Sorry for asking basic things. Thanks a lot!

Guide: https://github.com/commons-app/commons-app-documentation/blob/master/android/Quick-start-guide-for-Developers.md
Search for "nominate for deletion" in the source code, that will give you a localization identifier. Search for that identifier and you will get the code 🙂
Then search for "nominat" and "delet" in the source code, that should get you more related classes.

Guide: https://github.com/commons-app/commons-app-documentation/blob/master/android/Quick-start-guide-for-Developers.md
Search for "nominate for deletion" in the source code, that will give you a localization identifier. Search for that identifier and you will get the code 🙂 Then search for "nominat" and "delet" in the source code, that should get you more related classes.

Thanks again @nicolas-raoul :D

Hey again, I am having some trouble with android studio. It will not build and the following is displayed:
failed
The option setting 'android.enableR8=false' is deprecated.
The 'kotlin-android-extensions' Gradle plugin is deprecated. Please use this migration guide (https://goo.gle/kotlin-android-extensions-deprecation) to start working with View Binding (https://developer.android.com/topic/libraries/view-binding) and the 'kotlin-parcelize' plugin.
Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
:app:stripBetaDebugDebugSymbols
Compatible side by side NDK version was not found. Default is 21.0.6113669.
:app:packageBetaDebug
com.android.ide.common.signing.KeytoolException: Failed to read key AndroidDebugKey from store "C:\Users\giort.android\debug.keystore": Integrity check failed: java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available
Algorithm HmacPBESHA256 not available
Does any1 know how to fix it? Thanks a lot!

This problem is not specific to Commons, so I would suggest you try building a tutorial project, and searching the Internet for solutions to your issue. If no one on the Internet has the same problem, I suggest posting a new question on Stack Overflow. Good luck!

Hey i wanted to let you know that I will not be able to fix the issue and you could unassign me from the issue. Thanks a lot!

Understood, thanks for letting us know!

Hi @nicolas-raoul please let me know if this issue can be picked, I would like to look into this.

@ratneshnavlakhe It is yours, thanks!

Thanks, @nicolas-raoul I have some questions about showing the dialog.

Is the dialog cancellable via the back button?
Should the dialog have only one positive button 'ok' button ?
Should I use this message text Please remove from this email any information that you are not comfortable sharing publicly. for the dialog?
Should I add this message in string resource? If so, do we need to add translations for all the languages?

@misaochan
Sorry, my understanding was that we were going with posting to a wiki page as described at https://github.com/commons-app/apps-android-commons/issues/4732#issuecomment-1004674506 , but now that I re-read your subsequent comment https://github.com/commons-app/apps-android-commons/issues/4732#issuecomment-1004801322 I am troubled by your words "option 2". Do you mean implementing a popup and keeping the Google Groups system is better than posting to wiki?
Personally I would suggest merging ratneshnavlakhe's PR (after a few minor modifications) in the meantime before someone implements wiki posting. What do you think?

@nicolas-raoul sorry, my brain was having an off-day! I meant switching to a wiki indeed, however IMO there is no harm in having both, and certainly having a dialog before we can implement the switch is a good stopgap. We can just modify the dialog's text when wiki posting is implemented.
Please feel free to merge the PR after the changes that you requested are made. :)

Follow-up: #4779


docs: add missing bind mounts

Issue
The following examples in included/README.md will not run, since they are missing bind mounts to a Cypress project:

Arguments > run a single spec
Entry with arguments

Change

Arguments > run a single spec

Add -v .:/e2e -w /e2e to the command line.
Change the spec path and name to cypress/e2e/spec.cy.js for compatibility with the default Cypress example spec name.

Entry with arguments

Add -v .:/e2e -w /e2e to the command line.

Preview

https://github.com/MikeMcC399/cypress-docker-images/tree/add-bind-mounts/included#arguments
https://github.com/MikeMcC399/cypress-docker-images/tree/add-bind-mounts/included#entry-with-arguments


HDDS-2452: Wrong condition for re-scheduling in ReportPublisher

What changes were proposed in this pull request?
Updated the condition for re-scheduling in ReportPublisher
What is the link to the Apache JIRA
HDDS-2452

Test failures are not related.


Thankyou

I was searching for a way for users to do schema evolution of the DSL inside surrealDB and it looks like this can do it.
I am amazed this is not a core part of surrealDB actually because it’s such an important thing to be able to upgrade production / live system

oh I know its not ready. hell neither is surreal really.
If you need help just yell. I am pretty busy but schema evolution is a subject I am into.
here is some new stuff.
https://github.com/xataio/pgroll uses https://openpracticelibrary.com/practice/expand-and-contract-pattern/
so you essentially multi versioning the DB in an "eventual" way, so that your API to the middle tier can cope with 2 versions at the same time.  That essentially solves a very big PITA for OPS.
It might have some bearing eventually on the surreal db schema evolution. I read that the team are designed for multi versioning btw. Did you see any info on that I wonder ?

oh I know its not ready. hell neither is surreal really.

Nothing is fully ready in a sense. I mean. Some can be feature complete per their own scope (relational databases like SQL Server, document databases like MongoDB). But the multi-model databases world is a true Pandora box.

If you need help just yell. I am pretty busy but schema evolution is a subject I am into.

Same. Same. Feel free to pick a subject that motivates you.

here is some new stuff. https://github.com/xataio/pgroll uses https://openpracticelibrary.com/practice/expand-and-contract-pattern/

Interesting. Will find the time to read that. Yes, there is quite some innovative solutions/patterns for migrations that rises at the moment. The same goes for databases obviously. Still making sense of what is the best workflow even though not everyone as the same. I really like the one I got right now. But if it don't want to miss interesting improvements.

so you essentially multi versioning the DB in an "eventual" way, so that your API to the middle tier can cope with 2 versions at the same time. That essentially solves a very big PITA for OPS.

Like what GraphQL "invented" with the Obsolete property?
I suppose there are two kinds of data/migrations: cold migrations and hot migrations. Based on the volume of data affected? Intriguing.

It might have some bearing eventually on the surreal db schema evolution. I read that the team are designed for multi versioning btw. Did you see any info on that I wonder ?

Not that I am aware of.


Translate does not work with useStaticFilesLoader

Subject of the issue
I am experiencing the same issue as seen in this thread: https://github.com/angular-translate/angular-translate/issues/606
FYI: Everything works perfectly fine when I use the following, instead of the Static Files Loader:
$translateProvider.translations('en', {
    "HELLO": "Hello",
    "LANGUAGE": "Language"
}).translations('fr', {
    "HELLO": "Allo",
    "LANGUAGE": "Langue"
});

Steps to reproduce
Here is a Plunker of what I have link to demo
The only difference is the prefix path at the config level since I have a folder named 'translations' located in the same folder as my config file.
In other words
-parent folder
-config file
- translations folder
- translation_en.json
- translation_fr.json
app.config(['$translateProvider', function ($translateProvider) {

        $translateProvider.useStaticFilesLoader({
            prefix: './translations/translation_',
            suffix: '.json'
        });
$translateProvider.preferredLanguage('en');
        $translateProvider.useSanitizeValueStrategy('escape');
    }]);

I also have those in my Html:
<script type="text/javascript" src="./Scripts/angular-resource.min.js"></script>
<script type="text/javascript" src="./Scripts/angular-translate.js"></script>
<script type="text/javascript" src="./Scripts/angular-translate-loader-static-files.js"></script>

...

<select ng-options="language | translate for language in languages" ng-model="language" ng-change="updateLanguage()">
</select>

Expected behaviour
I expect the message to change according to the selected language.
Actual behaviour
I see the name of the Key.

@marcdepelteau Please take again a look at your demo and also include the results you see in the browsers console.
Your demo is trying to load a file from https://cdnjs.cloudflare.com/ajax/libs/angular-translate/2.15.2/angular-translate-loader-static-files.js, which doesn't exist. You have to change this path in your script-tag to https://cdnjs.cloudflare.com/ajax/libs/angular-translate-loader-static-files/2.15.2/angular-translate-loader-static-files.js and it will work.

@SimonSimCity Thanks Simon! The example does work now, but when I upload all the files to a folder in SharePoint, it does not work!

@marcdepelteau As I said ... please check out your browsers console and work yourself up from there. If you want, I can assist you in that, provided you first do all you know, keep struggling until you don't know more. Tell me everything you've done and we continue from there on.


[TUBEMQ-466] add local storage interfaces and implements

Codecov Report

Merging #358 (f1cf954) into TUBEMQ-455 (5f6bf34) will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             TUBEMQ-455    #358   +/-   ##
============================================
  Coverage          7.80%   7.80%
  Complexity          468     468
============================================
  Files               261     261
  Lines             28010   28010
  Branches           4598    4598
============================================
  Hits               2186    2186
  Misses            25349   25349
  Partials            475     475

Continue to review full report at Codecov.

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


Remove new Go precommit dependencies due to failures

Underlying issue tracked in https://github.com/gogradle/gogradle/issues/225

R: @lostluck

LGTM

Thanks!


Add scripting/macro support

Changed to alpha, as this needs to be in the design from an early stage


Accurate cost for covering a short

What does the COST column mean for a cover_order in wallet_market_order_list command?

I think the cost for covering an order via GUI is some higher than how much it actually need. Traders always want maximum profit and minimum loss. Is there a command/API to show how much exact interest need to pay for covering a specific short order now, or covering at a specified time/block_number?

Related to #1345
The wallet will automatically cut down the cover amount if it exceeds principal + interest when the cover transaction is created: https://github.com/BitShares/bitshares/blob/master/libraries/wallet/transaction_builder.cpp#L644

I finally figured out .. the 2nd issue is fixed in this commit:  https://github.com/BitShares/bitshares/commit/fa18f01aeec7f7be36c0bce200bbb962e4064bc6#diff-4bcca2f3abbcb15b2f74e9ed807bf9da . But I am still using v0.6.1 :( Have to upgrade.


grpc node 0.10.0 fails to build as newer nan package is released

There nan 1.9.0 released today, see  https://github.com/nodejs/nan/blob/master/CHANGELOG.md.
It looks like grpc node package fails to build now.  It pulls the 1.9.0 as the dep in package.json says ""nan": "^1.5.0","
The errors are:

<EMAIL_ADDRESS>install /usr/lib/node_modules/grpc
node-gyp rebuild
gyp WARN EACCES user "undefined" does not have permission to access the dev dir "/root/.node-gyp/0.10.40"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/lib/node_modules/grpc/.node-gyp"
make: Entering directory '/usr/lib/node_modules/grpc/build'
CXX(target) Release/obj.target/grpc/ext/byte_buffer.o
CXX(target) Release/obj.target/grpc/ext/call.o
../ext/call.cc: In static member function 'static v8::Handlev8::Value grpc::node::Call::StartBatch(const v8::Arguments&)':
../ext/call.cc:592:52: error: 'v8::Localv8::Value NanThrowError(const char*, int)' is deprecated (declared at ../node_modules/nan/nan.h:1290) [-Werror=d
eprecated-declarations]
return NanThrowError("startBatch failed", error);
^
../ext/call.cc: In static member function 'static v8::Handlev8::Value grpc::node::Call::Cancel(const v8::Arguments&)':
../ext/call.cc:606:48: error: 'v8::Localv8::Value NanThrowError(const char*, int)' is deprecated (declared at ../node_modules/nan/nan.h:1290) [-Werror=d
eprecated-declarations]
return NanThrowError("cancel failed", error);
^
cc1plus: all warnings being treated as errors
grpc.target.mk:106: recipe for target 'Release/obj.target/grpc/ext/call.o' failed
make: *** [Release/obj.target/grpc/ext/call.o] Error 1
make: Leaving directory '/usr/lib/node_modules/grpc/build'
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:820:12)
gyp ERR! System Linux 3.16.0-0.bpo.4-amd64
gyp ERR! command "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/lib/node_modules/grpc
gyp ERR! node -v v0.10.40
gyp ERR! node-gyp -v v1.0.1
gyp ERR! not ok

The newly published 0.10.1 package should fix this.

Noticed that the published package does indeed contain these fixes but the 0.10.1 grpc development release is behind.

That's because that is a tag, and has not been modified since it was published. The tag corresponding to that node release is release-0_10_1-node-0.10.1.


Autofocus controls scroll the river of news

In recent times, the Hacker News feed has included stories that are essentially links to GitHub pages. These pages include buttons with the "autofocus='autofocus'" attribute set. Here's a look at the markup for one of these buttons:
<button autofocus="autofocus" class="flash-close js-flash-close" type="button">
      <svg class="octicon octicon-x" height="16" version="1.1" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg">
    <path d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z" fill-rule="evenodd">
</path></svg>
    </button>

This autofocus attribute forces my river of news mode to scroll down to it. As a side effect, every unread story from the point I was reading to this story gets marked as read (which is highly annoying).
It would be great if NewsBlur could somehow disable autofocus elements (though I could imagine this is a browser problem).

What's the feed url that's doing this? I'd love to see it. We have some control over what gets stripped from feeds, but I'm not sure if you're looking at the Feed view or the Text view. The Text view is a bit less permissive so I'd be surprised if that was the cause.


Unable login user dashboard

Hi yeasy, i follow the document and setup cello, but i cannot login user dashboard with admin/pass, the browser throws internal server error 500. would u like to have a look?

Please report in https://jira.hyperledger.org/browse/CE.


Added Apache Kafka Connect gcs sink

What changed, and why it matters
Migrated https://help.aiven.io/en/articles/2888122-aiven-for-apache-kafka-gcs-sink-connector-by-aiven
Fixes #633

Thanks @dbeech, I believe you spotted i took parts of the content from the s3 sink and some from the Opensearch one :D

Fixed! Thanks

@TibsAtWork Could you take a look at this one please? There's some sentence case/title warnings going on. The content is good to go once you're happy (thanks @ftisiot , thanks @dbeech !)

I've updated the vale styles to cope with Google Cloud Storage correctly, and fixed the errors produced by make spell. All seems well now.


[Bug]: API tests reporting does not log the response headers

Describe the bug
When running API tests using the SHAFT framework, the Allure report does not log the response headers of requests calls.
A workaround to this would be to use the following line of code:
Allure.addAttachment("API Response - Headers", String.valueOf(response.getHeaders()));
But this adds the "API Response - Headers" outside of the test method logging, not inside it. You can see how this looks like in the below screenshot.
Environment

SHAFT_Engine version that exhibits the issue (Note: We support only the latest release): 8.1.20240324

To Reproduce
Steps to reproduce the behavior:

Wrap the following code in a test method
response =                  rst.buildNewRequest(path, RestActions.RequestType.GET)                          .useRelaxedHTTPSValidation()                          .setParameters(queryParams, RestActions.ParametersType.QUERY)                          .setTargetStatusCode(statusCode)                          .performRequest()                          .thenReturn();
Run the test
Open the report and go to the request details part of the report

Expected behavior
Report contains the following sections: API Request - Specifications (which contains the request initial headers), API Response - JSON Body and a section where you can see the API Response - Headers.
Actual behavior
Report only contains API Request - Specifications and API Response - JSON Body
Screenshots
The screenshot from below contains API Response - Headers because I added this line of code in the test method:
Allure.addAttachment("API Response - Headers", String.valueOf(response.getHeaders()));

Screenshot from below does not contains API Response - Headers because the .addAttachemnt call was not included.

will now include full information for request and response


Automatic promisification

Hey - just wondering why this doesn't use promisify and uses the promise constructor instead.

I don't know :) I'm not an expert actually on Promises (despite having started this project (which was shamelessly stolen from a gist)). Can you sketch out how promisify works and the advantages it offers over our current approach?

promisify takes a function and returns a promise returning function of it automatically.
http://bluebirdjs.com/docs/api/promisification.html

So it's basically a shortcut then. Well... I'd prefer to be explicit over using magic. promisify seems more suitable for writing application code than a library where you want to be sure you're doing things correctly.


fix component update bug

Issue: virtual-dom doesn't seem to compare two widgets for equality based on key - or at least, if one key is undefined and the other isn't they're compared as equal and the component is updated, not calling the onadd event.
Secondly, if two components have different constructors but undefined keys, then they're considered equal. This is more of a hyperdom issue.
In any case, in this patch we compare the keys and constructors before deciding whether to update or create a component.

in 0.12.0 @joshski


Consider renaming Hosting Environment key

ASPNET_ENV => Hosting:Environment was @lodejard suggestion.  I didn't want to do this as part of my hosting rework PR, as this will break tooling

Fixed as part of 234bbf82f2329e1ce2092962264ba5d4567d115b, both keys are supported, Hosting:Environment is looked for first


Text in text code blocks is vertically mashed and squished together, in Chrome on Ubuntu 18.04

Details

Read the Docs project URL: https://readthedocs.org/projects/bigchaindb-server/ with docs at http://docs.bigchaindb.com/projects/server/en/latest/
Build URL (if applicable): NA
Read the Docs username (if applicable): bigchaindb_admin

Expected Result
Plain text code blocks should have some space between each horizontal line of text.
Actual Result
When using Chrome 67.0 (64-bit) on Ubuntu 18.04, plain text code blocks have no space between the lines of text. The lines look like they are all mashed together. Below is a screenshot from http://docs.bigchaindb.com/projects/server/en/latest/simple-network-setup.html#set-up-the-firewall as seen in Chrome on Ubuntu 18.04.

You can find the source for that page at:
https://github.com/bigchaindb/bigchaindb/blob/master/docs/server/source/simple-network-setup.md
Below is a screenshot of the same docs from Firefox 61.0.1 (64-bit) on Ubuntu 18.04.

@davidfischer I think this is something you'd know about?

I wasn't able to reproduce this in Archlinux. I tested with Chrome 61.0.3163.79 (Build oficial) (64 bits) and Versión 68.0.3440.75 (Build oficial) (64 bits)
and Firefox 61.0.1 (64-bits)

This appears to be an issue with the font Liberation Mono which is used on many Linux distros. https://github.com/rtfd/sphinx_rtd_theme/pull/657. I'm going to get this merged and deployed as it seems to be a recurring issue.
On MacOS it looks good, FWIW. I'll get the above PR merged though.
Screenshots

Chrome 67.0.3396.99 (Official Build) (64-bit)

Firefox Developer Edition 62.0b12 (64-bit)

I got that PR merged and released. I think you have a few docs build issues in master but if you get it building this issue should be resolved.

@davidfischer Thanks! I'll close this issue.

We resolved the issue that was causing our docs to not build. They are building again, and now they look great in my browser (Chrome on Ubuntu). Thanks!


Is it possible to call jmar directly from the java code

Hi
I would like to use the jamr as a library in java maven code. I have setup all the required path and models. is there any way to not call script and call the jamr from the code and have the result as object.
Thanks in advance

Thanks for the feedback! This is something we'll add soon (I can do it sometime next week).

Thanks, I am looking forward testing it.

Hi, any news about this feature!


General feedback 🎉

Just here to say thank you for this brilliant project!
The included behaviors are a very good starting point and the API docs are very straight forward. All methods and properties are well documentated.
I was able to get a bot with a few skills equipped up and running very quickly, thanks to your good work.
Currently I am fixing out minor details, most importantly race conditions (my bot ended up trying to eat shovels and pickaxes 🤪 because it wanted to eat and mine at the same time, or due to cancelled and improperly handled events.)
It's actually fun to incorporate other useful mineflaye-* plugins into their own states, behaviors and transitions. Even the nesting of compound behaviors is working very nice! 🙌 The webserver with the visual feedback is also very useful in complex setups or even to find a missing transition very efficiently! 🎉

Thanks for the feedback! I'm really glad it's come in handy for you.
Yeah, one of the biggest issues I've noticed with the current implementation is the delayed trigger checking. It only attempts to switch states once per tick, which can led to race conditions in very short-lived behaviors, lol. Especially when it comes to the event callbacks. Sometimes it's just easier to wrap those inside the bigger ones.
Thanks for taking the time to let me know your thoughts on this. I really appreciate it.


Add a CLI?

We should consider adding a CLI.
The CLI could only use the default comparators but it can still be useful, even though a major asset of dir-content-diff is to be extendable.

Fixed in #70


Implemented ZipList in project. Added WB and Visual

[X] Top-level README “Table of Contents” is updated
[X] Feature tasks for this challenge are completed
[ ] Unit tests written and passing

[ ] “Happy Path” - Expected outcome
[ ] Expected failure
[ ] Edge Case (if applicable/obvious)

[X] README for this challenge is complete

[X] Summary, Description, Approach & Efficiency, Solution
[X] Link to code
[X] Picture of whiteboard


Update optimization.jl

add parameter combination for 4 and 5 parameters #26

@JuliaRegistrator
Release notes:
Minor changes:

updated optimization.jl to work with an arbitrary number of parameters (previously limited to 3)

Comments on pull requests will not trigger Registrator, as it is disabled. Please try commenting on a commit or issue.


Sealed classes not parsed

There is an error with sealed class.

Thank you for the report, will have a look at it.
Do you confirm using the last version? (0.0.17)

Yep I use the last version

Should be done. Javaparser seams not quite perfect with sealed class, but it should fix your issue.


Roll Flutter Engine from 6670f92130d9 to 68a721ac66b1 (4 revisions)

https://github.com/flutter/engine/compare/6670f92130d9...68a721ac66b1
2022-06-13<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from 2alXmAhdn... to GjdmK8tOM... (flutter/engine#33995)
2022-06-13<EMAIL_ADDRESS>Roll Skia from a913ef51bb2b to eeb50b00494a (1 revision) (flutter/engine#33994)
2022-06-13<EMAIL_ADDRESS>[android] Fixes 'drawRenderNode called on a context with no surface' crash (flutter/engine#33655)
2022-06-13<EMAIL_ADDRESS>Roll Dart SDK from ab8eafda59f7 to ec56a51b9cdd (1 revision) (flutter/engine#33991)
Also rolling transitive DEPS:
fuchsia/sdk/core/mac-amd64 from 2alXmAhdnH0r to GjdmK8tOMq93
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Flag selected countyname in filename

If user selects just Dublin, this should be reflected in the output filename

duplicate of #6


Is there a way to transform the child widget inside the mask widget like pinch zoom, scale and drag the child?

any possible solution

I'm not really sure what you mean. Do you have an example of something that is not working as you would like it to?
This example allows you to drag the text that is used as a mask:
https://zapp.run/edit/flutter-zl406i8l506?entry=lib/main.dart&file=lib/main.dart

``> I'm not really sure what you mean. Do you have an example of something that is not working as you would like it to?

This example allows you to drag the text that is used as a mask: https://zapp.run/edit/flutter-zl406i8l506?entry=lib/main.dart&file=lib/main.dart

basically, I want to implement the login like that in the below screenshot video
https://user-images.githubusercontent.com/102783192/207113876-663119d8-088c-40d3-b124-6458b6a28f3a.mp4
exactly I want to make this logic in my app
do you have any suggestion


disable the updater

Would like to know how to disable the updater, our users do not have admin rights and it keeps prompting to install a helper tool asking for admin username and password.

Insomnia Version: ___all
Operating System: ___mac

Details

Starting from version 12.5.0 you can disable auto-update checking in the preferences.

ah ok i am on version 5.11.7. Is this possible on this version?

No, it was just added.

ok will it take time to update? The download version i am getting is 5.12.3
from https://builds.insomnia.rest/downloads/mac/latest

ah i can see the option on here, thanks very much

Oops. Sorry I made a typo. I meant to say 5.12.0.
Yep, that's the one you want 😄

You're welcome! 💯

ok i can see the setting is not stored in standard plist but in ~/Library/Application\ Support/Insomnia/insomnia.Settings.db is there a way i can programmatically set this using terminal? If i copied over this file during a reinstall i may wipe over users settings.

Would an environment variable work? That would be easy to add support for. You could also block all HTTP requests to https://updates.insomnia.rest if you have that ability.

yeah i think a variable would be good. Thanks

Just made an issue for this ^
Would you be interested in contributing a PR @tkimpton?

sure

Awesome. I just updated #637 with some info. Feel free to ask any questions there if you have any.


help me in connection to mongodb

how to connect my mongo machine using  URI method and what is mean by connection name ?

Hello,
in version 1.1.0, you can simply write your URL to third tab (as far as I remember) and save it, and then simply you can choose to connect it. Url connection name is just a reminder for you to show it on main view. So its a mongoclient specific name, you can put there a text like My Test Connection etc.
Regards


Kubernetes loadbalancer service is not fetching public IP

ISSUE TYPE

Other

COMPONENT NAME

Kubernetes

##### CLOUDSTACK VERSION
<!--
New line separated list of affected versions, commit ID for issues on main branch.
-->

Cloudstack 418

CONFIGURATION

KVM is on Advance networking
2 Management Node with multi management node agent configured
DB on seperate server
Storage on HA NAS
OS / ENVIRONMENT

KVM and cloudstack management is on ubuntu 22.04
SUMMARY

I am trying to configure kubernetes cluster on my enviornment. Endpoint url is given as my primary management server IP and start the cluster. In cluster I deployed a nginx pod and started service as load balancer. External IP shows as pending so on describe I could get the error as "Error syncing load balancer: failed to ensure load balancer: could not find network"
I haven't configure an external loadbancer for my management servers. Do I need to configure that and edit endpoint url in global settings to nginx server?
STEPS TO REPRODUCE

EXPECTED RESULTS

ACTUAL RESULTS

Figure it out that the as kubernetes cluster name is case sensitive and on upper case we get this error. on lower case everything works fine


Binary downloads are in the Code tab

I failed to find the installer for Rocket.Chat.Electron, and had to consult the README to find it. I then realized the problem was very simple - the Releases "tab" is inside the "Code" tab, as can be seen in the following screenshot:

Yet, the Releases tab contains all releases, not just source code packages.

Please test if the latest release did solve this. If not please reopen the issue or create a new one and tell us. I will be closing this one for now.
Thank you!

The Code tab changed a lot, but I am afraid releases are still only accessible there. Unfortunately I cannot reopen this "issue".

I dont think we can change it. Its the way Github is.

Thank @jeanfbrito
I do not master GitHub enough to confirm or infirm that. If for example I look at the Stretchly project, it is also affected. So whether or not this is configurable, I recommend making sure GitHub is tracking its issue with its default configuration.


Replace uses of Ref with StateT instead

Our Ref uses (Body.read and TestHelpers.toBuffer) could and should be more safely written using StateT instead.

I don't think this is possible at least with the callback based approach in the places where Ref is currently used. I'm not sure if it would be possible to use Aff, and would StateT be applicable then.

Closing for now. If someone encounters a problem that this could solve we can revisit.

Closing for now. If someone encounters a problem that this could solve we can revisit.


Specified relationName is not honoured for mutations and aggregations

Describe the bug
When a relationship name is specified in the definition, in v5.1.0-alpha.1 it appears to be working on the entity results (wasn't in the ^4.0.0 version I was using before). However, aggregate functions are still being pluralized and the relationship name is not being used
Have you read the Contributing Guidelines?
yes
To Reproduce
Steps to reproduce the behavior:

for a relationship, specify the name, example below:

@FilterableUnPagedRelation('ofInterestTo', () => Company, {
  relationName: 'ofInterestTo',
  nullable: true,
  update: { enabled: true },
  remove: { enabled: true },
})

when you view the fields available, you see aggregate results are not honoring the relationship name:

nor are the resulting mutations:

Expected behavior
Mutations and aggregate graphql attributes/objects should also adhere to the relationship name specified.
Desktop (please complete the following information):

Node Version v18.14.0
Nestjs-query Version: 5.0.0-alpha.1

Thanks for reporting, I see I only updated the read relations resolver and not the others.


Prevent changes on PATCH

Currently, it is really easy to PATCH a user to set isVerified, or a resetToken.
Maybe you should add a built-in hook to prevent these changes on PATCH /user/:id ?

Whatever additional controls are implemented, someone will come up with a valid, opposing use case.
You can use the preventChange hook https://docs.feathersjs.com/api/hooks-common.html#preventchanges
Feel free to make a PR to the docs with a small note mentioning the situation.

PR: https://github.com/feathersjs/feathers-authentication-management/pull/56

Merged. It'll be pushed as 0.4.3.


Contrast errors

The dark grey text on light a grey background is a contrast error. Suggest we change the grey text to black and bold?

The grey text on white is also a contrast error. Suggest we have text  formatting the following way? Happy for other  suggestions
Data date range: Aug 2020 - Aug 2020
and
Parties
Count of parties: 8002

Please try it and we'll see whether it's nice or not

The mentioned grey texts are now in thin font and "black" color. Values are "black" and in regular font. The suggested bold black text is too aggressive by my own opinion and looks ugly. So I tried the thin text and I think it looks better.

Looks good to me :)

Closing as Deployed.


Actionsheet is not able to access it's parent context.

Description
ActionSheet component with React.Context. The context consumer doesn't appear to have the latest state.
CodeSandbox/Snack link
https://snack.expo.dev/@joeyjiron06/2a8d0e
Steps to reproduce
No response
NativeBase Version
3.4.8
Platform

[X] Android
[X] CRA
[X] Expo
[X] iOS
[X] Next

Other Platform
No response
Additional Information
No response

Hey @sanna231,  Thanks for reporting the issue, We'll look into it.
For now, the workaround is that you have to wrap NativeBaseProvider with your ContextProvider.


Communication stops

I have downloaded and opened the Unity project in Unity 2020.3.27f1 and run server.py.  It works as is and stops at 10 message sent and received.  When I modify the code HelloRequester.cs to run continuously the process stops at 30.  Every time.  It stops here:
gotMessage = client.TryReceiveFrameString(out message);
if (gotMessage) break; // gotMessage is always false after 30 messages.
The strange thing is I can stop and play Unity again and the messages start sending/receiving again - unit 30.  I have tired reducing the delay in the python code and the number of messages goes up but they still stop consistently at the same time each time.
Any ideas on how to get around this?

Not sure why that would cause a problem. Have you tried using the original code and only modifying the number from 10 to 30 or 50 or something like that?
I would suggest to do that first to confirm that there is something special about 30.
https://github.com/off99555/Unity3D-Python-Communication/blob/dfb1c26538c83a7c65cf93611a772661d495c2e8/UnityProject/Assets/NetMQExample/Scripts/HelloRequester.cs#L24

Yeah, SocketIO works OK from what I tested last year. I used it to stream data at 60 FPS. You can build the project and it still works.


Use Infallible as error type for gpio api

Since the stm32g0 gpio operations are not fallible.
This patch brings this crate more in line with the other stm32-hal crates.

This patch will be landed with the next release.


git-node: add GitHub status as a CI option

Some project in the org don't use Jenkins, which means PRChecker will
never succeed for pull requests on those projects. These projects
usually have Travis, AppVeyor or other CI systems in place, and those
systems will publish the status to GitHub, which can be retrieved via
API. This commit adds GitHub status as an optional way to validate if a
PR satisfies the CI requirement.
We need to check for the CI status in two fields returned by our GraphQL
query: commit.status for services using the old GitHub integration, and
commits.checkSuites for services using the new GitHub integration via
GitHub Apps.

I'll add docs later, since they'll go to the same place as the docs in #367.

Oh no, I thought eslint would fix those lines, but it can't autofix max-len :(
I'll fix it manually and update the PR.

Even though node uses jenkins, the jenkins results are pushed to github, so this approach might work for node as well.

Even though node uses jenkins, the jenkins results are pushed to github, so this approach might work for node as well.

Yes, but it's less reliable since sometimes the bot won't update the status correctly.

@joyeecheung do you mind removing the WIP tag?

@mmarchini Can you rebase this branch? The Jenkins status in the Node.js repo are fairly stable now, so it would be good to use this for Node as well. Thanks!

On my list. Will try to get this done today or next week.

Rebased

Thanks for the PR :)


Vue3 Migration

Add Vue 3 & dependencies - Done

Webpack setup for Vue 3 - Done

Create web component wrapper for Vue 3 - Done

Migrate Vue UI components into Vue 3 - Done

Setup Jest for Vue 3 - Done

Setup ESLint for Vue 3 - Done

Fix lint errors - Done

Migrate unit tests - In-Progress

Closing as already merged in #1787


Specify output

Good morning
I am running SNVstory on multiple samples and am looking to differentiate between different output reports. Currently, the output I get from running what is on the readme labels the output as default.file. Is there any way for me to get outputs reading samplename.file? I only see specification for output directory.
Thanks
Erin

I have tested using the --output_filename function. However, this only changes the .csv output file name. Is there any way to specify the .html and .pdf file names?

This should be a simple fix I'll look into adding something like this shortly.


OXY-1404: Revert #60 and instead add ability to pass TSYNC attribute to seccomp

While updating Oxy with foundations 4.0, I discovered a flaw with the previous approach: docker, by default, uses seccomp to block 44 system calls. This means that, with the approach used in #60, code calling enable_syscall_sandboxing would get an error because seccomp is already active if it happened to be running inside a docker container - even though it could still safely call enable_syscall_sandboxing.
As described in #60, the original motivation for that change was because of the use of the tokio::runtime::Builder::on_thread_start hook leading to double seccomp initialization. This hook was used to ensure that any threads initialized before seccomp is configured on the main thread also had seccomp active, but it led to a risk of double seccomp initialization leading to a crash.
This PR removes the need for any of that using the seccomp flag SECCOMP_FILTER_FLAG_TSYNC (man seccomp). This flag synchronizes the seccomp filter state of all threads in the current process. Using this, we can remove the on_thread_start hook and call enable_syscall_sandboxing exactly once in the whole application, ensuring that:

All threads created before enable_syscall_sandboxing is called will have seccomp configured thanks to the flag
All threads created after enable_syscall_sandboxing is called will have seccomp configured as the current thread's seccomp state is inherited by new threads
We never violate seccomp by attempting to initialize it twice

After external discussion, we realized this would break graceful restarts with shellflip, which is currently relying on the thread used to spawn the child not having seccomp configured.


Prevent createdA being updated on upsert (updateOrCreate) call

#11

Coverage remained the same at 100.0% when pulling 15f84024ac516000f44c7e72158acd2aea3f111d on kno:createdat_problem_solved into 9051e93f631a0f190468ab6886f6eb64388a69df on clarkbw:master.

@kno why does this solve the problem?  The tests seem to pass but I believe we need a test that is specific to this change.

The test should turn on validation and upsert fails should be failing if this change fixes the issue.

Eek, would love for this to be fixed. Not merged yet?

I'm not familiar with travis, and is failing. Can anyone tell me why?

That test should be failing locally as well as on travis.  I believe this is an issue with the change, not travis itself.

Coverage remained the same at 100.0% when pulling 15f84024ac516000f44c7e72158acd2aea3f111d on kno:createdat_problem_solved into 9051e93f631a0f190468ab6886f6eb64388a69df on clarkbw:master.


Added Valley of Flowers ,Uttaranchal

@mohdfawad99 can u please check

@mohdfawad99 I'm new in open source so if there is any problem let me know. I'll fix it


No variants found for 'react-native-camera-kit'. Check build files to ensure at least one variant exists.

Issue Description
When I build android , i have problem .

Steps to Reproduce / Code Snippets / Screenshots
[FILL THIS OUT - It will be extremely helpful]

Environment

React Native Navigation version: ^2.8.2
React Native version: "0.63.4"
Platform(s) (iOS, Android, or both?): Android

I haven't encountered this issue before. My best guess is that you need to investigate if the package is installed correctly.

You forget to add Kotlin to your android project


terrastore for neo4j

Sergio, hi;

I am still evaluating, but it seems what I really need is something like neo4j
on top of terrastore;

I listed you as an alternative to neo4j:
http://wiki.neo4j.org/content/Neo4j_and_Terracotta

probably some day it will?

I know it is a long shot, but do you think it is possible to run neo4j with
terrastore as backing store? for this of course, Emil + Sergio must collaborate
:-)

Thanks for sharing your insight into this;

Andrei

Original issue reported on code.google.com by Andrei.Pozolotin on 27 Jul 2010 at 2:18

Andrei, you didn't open a mailing list discussion about that, so I'll briefly
answer here: I think Terrastore as a Neo4j backend would make little sense,
because Neo4j needs its own "ad-hoc" storage to perform well.

Maybe you could put your data into Terrastore for highly available writes, and
then propagate your data to several Neo4j instances by using Terrastore events:
if you want to talk more about this solution, please open a mailing list thread
;)

Cheers,

Sergio B.

Original comment by<EMAIL_ADDRESS>on 30 Jul 2010 at 8:18

Changed state: Invalid

sure, you are the boss!

Original comment by Andrei.Pozolotin on 27 Jul 2010 at 3:32

Hi Andrei,

I think the best place for this kind of discussions is the mailing list (so
that other people such as the neo4j guys can participate more easily):
http://groups.google.com/group/terrastore-discussions.
Do you mind to move there and open a thread?

Original comment by<EMAIL_ADDRESS>on 27 Jul 2010 at 2:44


[VMWare] Limit IOPS in Compute/Disk Offerings

Using the VMWare hypervisor, when trying to create IOPS-limited VMs, either using Compute or Disk offerings, the IOPS limits were not respected in the hypervisor. This behavior has been corrected, in order to be able to limit, in VMWare, the IOPS limit of a VM, as long as the option to limit IOPS via hypervisor is used. Also, I added a new method to LogUtils class to enable to log objects using Gson without exception, to improve logs information.
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[x] Minor

Screenshots (if appropriate):

How Has This Been Tested?
It was tested in a local lab:

I created three new offerings: one Compute Offering with IOPS limit,  one disk offering with IOPS limit and one disk offering without IOPS limit;
I created a new VM using this compute and disks offerings;
Before, the IOPS limitation was not applied;
Now, the IOPS limitations are being applied.
Also, I added new unit tests.

@acs-robot a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

UI build: :heavy_check_mark:
Live QA URL: http://qa.cloudstack.cloud:8080/client/pr/6386 (SL-JID-1812)

@acs-robot a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

UI build: :heavy_check_mark:
Live QA URL: http://qa.cloudstack.cloud:8080/client/pr/6386 (SL-JID-2015)

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 3870

@blueorangutan help

@DaanHoogland I understand these words: "help", "hello", "thanks", "package", "test"
Test command usage: test [mgmt os] [hypervisor] [keepEnv] [qemuEv]
Mgmt OS options: ['centos7', 'centos6', 'suse15', 'alma8', 'ubuntu18', 'ubuntu22', 'ubuntu20', 'rocky8']
Hypervisor options: ['kvm-centos6', 'kvm-centos7', 'kvm-rocky8', 'kvm-alma8', 'kvm-ubuntu18', 'kvm-ubuntu20', 'kvm-ubuntu22', 'kvm-suse15', 'vmware-55u3', 'vmware-60u2', 'vmware-65u2', 'vmware-67u3', 'vmware-70u1', 'vmware-70u2', 'vmware-70u3', 'xenserver-65sp1', 'xenserver-71', 'xenserver-74', 'xcpng74', 'xcpng76', 'xcpng80', 'xcpng81', 'xcpng82']
Note: when keepEnv is passed, you need to specify mgmt server os and hypervisor or use the matrix command.
when qemuEv is passed, it will deploy KVM hyperviosr hosts with qemu-kvm-ev, else it will default to stock qemu.
Package command usage: package [all(default value),kvm,xen,vmware,hyperv,ovm] - a comma separated list can be passed with package command to bundle the required hypervisor's systemVM templates. Not passing any argument will bundle all - kvm,xen and vmware templates.
Blessed contributors for kicking Trillian test jobs: ['rohityadavcloud', 'nvazquez', 'borisstoyanov', 'DaanHoogland', 'shwstppr', 'andrijapanicsb', 'Pearl1594', 'davidjumani', 'harikrishna-patnala', 'vladimirpetrov', 'sureshanaparti', 'weizhouapache', 'NuxRo']

@blueorangutan test centos7 vmware-67u3

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + vmware-67u3) has been kicked to run smoke tests

Trillian test result (tid-4589)
Environment: vmware-67u3 (x2), Advanced Networking with Mgmt server 7
Total time taken: 46292 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr6386-t4589-vmware-67u3.zip
Smoke tests completed. 100 look OK, 1 have errors
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_08_upgrade_kubernetes_ha_cluster
Failure
603.30
test_kubernetes_clusters.py

@blueorangutan test centos7 vmware-67u3 keepEnv

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + vmware-67u3) has been kicked to run smoke tests

Trillian test result (tid-4592)
Environment: vmware-67u3 (x2), Advanced Networking with Mgmt server 7
Total time taken: 42339 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr6386-t4592-vmware-67u3.zip
Smoke tests completed. 100 look OK, 1 have errors
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_02_upgrade_kubernetes_cluster
Failure
562.10
test_kubernetes_clusters.py

test_08_upgrade_kubernetes_ha_cluster
Failure
618.00
test_kubernetes_clusters.py

UI build: :heavy_check_mark:
Live QA URL: http://qa.cloudstack.cloud:8080/client/pr/6386 (SL-JID-2069)

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_multiplication_x: debian :heavy_check_mark: suse15. SL-JID 3899

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: debian :heavy_multiplication_x: suse15. SL-JID 3906

Packaging result: :heavy_multiplication_x: el7 :heavy_check_mark: el8 :heavy_multiplication_x: debian :heavy_multiplication_x: suse15. SL-JID 3912

Packaging result: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: debian :heavy_check_mark: suse15. SL-JID 3916

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 3922

@blueorangutan test centos7 vmware-67u3

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + vmware-67u3) has been kicked to run smoke tests

Trillian test result (tid-4641)
Environment: vmware-67u3 (x2), Advanced Networking with Mgmt server 7
Total time taken: 43733 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr6386-t4641-vmware-67u3.zip
Smoke tests completed. 100 look OK, 1 have errors
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_08_upgrade_kubernetes_ha_cluster
Failure
887.39
test_kubernetes_clusters.py

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: el9 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 5288

@DaanHoogland a Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: el9 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 5289

@blueorangutan test rocky8 vmware-67u3

@DaanHoogland a Trillian-Jenkins test job (rocky8 mgmt + vmware-67u3) has been kicked to run smoke tests

Trillian test result (tid-5872)
Environment: vmware-67u3 (x2), Advanced Networking with Mgmt server r8
Total time taken: 48783 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr6386-t5872-vmware-67u3.zip
Smoke tests completed. 106 look OK, 1 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File

test_08_upgrade_kubernetes_ha_cluster
Failure
614.32
test_kubernetes_clusters.py

anyone has tested this ?


Remove extraneous space character

Extra space in the file path prevents easy copy-and-paste

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

#sign-off


add not null validation for document db uri & key and storage connection string

@yungez @xscript @aovechki

@ZhijunZhao,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


feat: make entry point executable

Allow and document a second config option:
Options 1

as it is today

Options 2 (new)
Standalne - No Changes to your git repository*. This is suitable when your team is not ready to roll cz-customizable across all teams but you still would like to use it for your own commits, no matter the project.
Steps:

create config file:

create a file called .cz-config.js in your git repository root (*Asumptions: you do a global git ignore on ~/.gitignore_global for .cz-config.js). Or;
create a file called .cz-config.js your home directory.

npm install -g commitizen
npm install -g cz-customizable. Make sure you have version >v5.6.x
create global commitizen config file .czrc: echo '{ "path": "cz-customizable" }' > ~/.czrc
now run: npx git-cz or git cz.

:tada: This PR is included in version 5.6.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[Bug]: examples/secure-api/go wrongly states to use the json keys from the service user

Preflight Checklist

[X] I could not find a solution in the documentation, the existing issues or discussions
[X] I have joined the ZITADEL chat

Environment
ZITADEL Cloud
Describe the bug
Prerequisites in the Go API example, states:

All that is required, is to create your API and download the private key file later called Key JSON for the service user.

However, this comment describes a user that was unable to use the example using the service user's key: https://github.com/zitadel/oidc/issues/206#issuecomment-1482848721. Instead, after advising them to create a JWT for the client, download and use that, the example did work. His feedback pointed me to the documentation, which might be worded wrong.
To reproduce
Steps to reproduce: (copied from original comment)

Create a service user in Zitadel with "Org Owner" privileges
Download a key.json for the newly created service user
Run the example mentioned above KEY="/path/to/key.json" PORT="9099" ISSUER="https://<your-instance>.zitadel.cloud" go run api.go
curl localhost:9099/protected --header "Authorization: Bearer ${TOKEN}"

Screenshots
No response
Expected behavior
No response
Version
2.22.3
Operating System
No response
Relevant Configuration
No response
Additional Context
No response

Note, the python example doc does describe the use of client credentials.


No attribute run

Hi,
I'm following the simple example on pypi:
import msise00
from datetime import datetime
atmos = msise00.run(time=datetime(2013, 3, 31, 12), altkm=150., glat=65., glon=-148.)
But I'm being told msise80 has no attribute 'run'. Looking through the module folder I don't see anything about run,except in the base.py file as a function. I installed msise00 from the tar file.

HI @dp689 thanks for reaching out.
I just now tried
import msise00
from datetime import datetime

atmos = msise00.run(time=datetime(2013, 3, 31, 12), altkm=150., glat=65., glon=-148.)

and it ran OK.
I'm not sure what's happening, I'll try to take a look

After digging closer, I think the root problem is I didn't Install GCC, GFortran, CMake and Make on Windows (my OS).  I'm working on that now.

I realized the setup script is broken when installing from Pypi. I should have it fixed this afternoon.  Thanks so much for reporting!!

Oh awesome. Glad that works out. Let me know when it's all set and I'll try again?

Also, is the cmake file missing? There seems to be some issue installing everything with finding a suitable cmake file.

Thanks. I redid the setup for Matlab and Python (each are independent and optional).
Hope it works better, thanks for the help!!
Now after pip install ... you do one time from Python
import msise00
msise00.build()

It will do that automatically on first run if you forget :-)

@dp689 hope it's better now. I tested on a Linux and Windows computer and it seems OK. I need to apply these techniques to similar repos I have (they don't affect MSIS). Thanks for your help.

there is a new release v1.4.0. The handling of data_files and the MSISE00 Fortran executable has been improved for and testing has been added for msise00 in virtual environments.


Adds an example for using graphql-nexus

GraphQL-Nexus is a new, interesting approach for code-first development
with GraphQL. This example provides a possible (but highly opinionated)
approach to integrating GraphQL-Shield with GraphQL-Nexus using the
nexus-prisma library for interacting with the Prisma backend.

@ChristianJacobsen thank you for creating the PR! It looks super cool 😄

:tada: This PR is included in version 5.3.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


General Factory Function for jsGrid

Hello;
I am working to incorporate jsGrid in a manner more consistent with DRY principles. Would anyone have some pointers for creating a sort of factory function to create a jsGrid instance much like one would create a new object with arguments being the data source and various configurations? The idea is to make an easily reusable grid component I could populate with data when need be and when passed the data from an ajax query. Then once the object is created it can be rendered to the screen.
It wouldn't be right for you to do my homework for me. I simply ask for pointers and tips or even some resources I could browse to find my way to this solution.
Thank you for jsGrid and cheers;
Braden.

The intent is a bit unclear.
How is creating of jsgrid instance violates DRY principle?

Sorry for the confusion;
I am managing multiple grid instances in the same page and need a way to update them with data from different sources. The structure of the data is the same but a user may want to view a different table. All the data is stored in a database which is accessed using AJAX. I wrote the backend code myself using a combination of django and django-rest to setup an API for accessing the data.
Is this anymore clear? I guess I put the cart before the horse. ;)
Braden.

@bradybray, thanks for the context.
Could you just declare a function wrapping creation of js-grid passing necessary parameters?

@tabalinas no problem
I could declare a function. Is it possible to pass variables to jQuery objects? For example;
$var = 'attributeID' function($var, $ajaxQueryResponse) {   $($var).jsGrid(...) {     ...   } };
Furthermore would one also be able to pass in an Ajax query/response? You'll notice I slipped that in as a parameter to the function wrapper for jsGrid. What would something like this look like if possible AND to have this occur on button or some sort of click handling event?
Braden.

I could declare a function. Is it possible to pass variables to jQuery objects?
I'm not sure what you mean. You can always have parameters in your factory function and use them (they will be available due to closure).

Try to implement it (using jsfiddle for instance), and once you have a concrete problem or a question it's going to be easy to answer.


Change the git hub link for Monke Computer Activator

The RedBrumbler MonkeComputer GitHub link isn't there anymore
Add this one: https://github.com/GalaxyOnVR/MonkeComputer

This is an issue with the QMOD file you are installing, and is not an issue with QuestPatcher. Please ask the author of the mod to change the link.