ND4J is not compatible with Spark's next-gen Kryo serializer (throws NPEs)

Upgraded to latest 3.10-SNAPSHOT and getting this in my cluster:
org.apache.spark.SparkException: Job aborted due to stage failure: Task 38 in stage 0.0 failed 4 times, most recent failure: Lost task 38.3 in stage 0.0 (TID 64, slave6.cluster): java.lang.NullPointerException
    at org.nd4j.linalg.api.shape.Shape.rank(Shape.java:1387)
    at org.nd4j.linalg.api.ndarray.BaseNDArray.rank(BaseNDArray.java:3917)

Full stack trace: https://gist.github.com/crockpotveggies/75a0f78bbe33b024f214c17fbd53d22e
I've already provided a dataset to @agibsonccc and a debug repo is available here: https://github.com/crockpotveggies/dl4j-full-stack-debug

Correction, I am also experiencing this on the rc3.9 release as well.

Anything you can give me to reproduce this? I ran the spark examples earlier, and didn't see this come up.

I will PM the dataset I'm using to you via Gitter.
On Fri, May 20, 2016 at 1:16 AM Alex Black<EMAIL_ADDRESS>wrote:

Anything you can give me to reproduce this? I ran the spark examples
earlier, and didn't see this come up.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/deeplearning4j/nd4j/issues/949#issuecomment-220543767

Dataset sent.

Core issue identified. ND4J is not compatible with Spark's next-gen Kryo serializer. Going to update the name of this issue.

Confirmed: default Kryo serialization (tested with v3.0.3) completely messes up the serialization of INDArrays (only tested with nd4j-native, very likely exactly the same with cuda).
We get null fields out for both the shapeInformation and the data; I suspect the field-by-field copy won't be safe for the linearStride either (might not be defined on a view, but could be fine on the deserialized non-view array).
This reproduces the issue:
    public static void main(String[] args){
        INDArray before = Nd4j.linspace(1,10,10);

        Kryo kryo = new Kryo();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        Output output = new Output(baos);
        kryo.writeObject(output, before);
        output.close();

        byte[] bytes = baos.toByteArray();

        Input input = new Input(new ByteArrayInputStream(bytes));
        INDArray after = kryo.readObject(input, NDArray.class);
        input.close();

        System.out.println(before);
        System.out.println(after);
    }

Only good option I think is to add Kryo as a dependency (don't really like that, but seems necessary) and then implement custom serialization there
https://github.com/EsotericSoftware/kryo/blob/master/README.md#kryoserializable
@crockpotveggies was this something you were going to look into fixing?

Since this is spark specific any way we could add kryo as an extra dep for nd4j on spark?

I don't think so, if we use the KryoSerializable interface - that has to be defined on the NDArray methods (I guess BaseNDArray).
Only other option I'm aware of (also doesn't require Kryo as a dependency) is to manually register things:
for example,
kryo.register(INDArray.class, new JavaSerializer());    //Java-based serialization
kryo.register(INDArray.class, new OurCustomSerializer());   //Custom serialization
In both cases, user has to remember to actually do this, or they will run into cryptic NPEs like the above. So I don't really like that option either (risks wasting a lot of time for users).

What about adding it to Dl4jSpark and adding it in the static initializer?

That'll solve the problem for probably 95% of users. Only ones left then are those who are using ND4J with Spark and Kryo, but not as part of DL4J. Which will happen, but not often. Maybe that plus some docs on how to manually register things is good enough.

I had this issue some weeks ago, and forgot to actually make the issue. Anyway, I made an attempt at making a custom INDArray serializer, and ran into trouble. Reason was that the kryo-instance itself isn't visible to spark (kryo.register() cannot be used directly), so it seems you have to override the main serializer. When I did this, the serializer forgot how to do simple things like Ints and Doubles, and all other built in classes. Maybe it can be solved by extending the "standard" one somehow?

hm, I had assumed you'd be able to configure the kryo serialization (that seems like a very common use case), but yeah, looks like that isn't possible (seems like a poor design to me...). Seems like the only thing you can do is register classes (using default serializer) but not actually specify the kryo serializer to use for a given class.
Anyway, as @Habitats suggested, you can set the spark serializer in spark config, and overriding the newKryo() method in the KryoSerializer.scala seems feasible:
    public class TestSerializer extends KryoSerializer{
        public TestSerializer(SparkConf conf) {
            super(conf);
        }

        @Override
        public Kryo newKryo(){
            Kryo kryo = super.newKryo();
            kryo.register(INDArray.class, new JavaSerializer());
            return kryo;
        }
    }

I haven't tested serialization with that, but it initializes OK and returns an instance of the right class using
Serializer serializer = sc.env().serializer();
SerializerInstance instance = serializer.newInstance();
Downside here is that to do all this without manual user intervention, you'd need to capture the SparkConfig before it is used to create a SparkContext (I assume changes won't take effect once SparkContext is initialized). Which I doubt is even possible.
As for getting a Kryo object at runtime: that's possible too, but there's no way to propagate changes from it to all Kryo instances (let alone to instances outside of the driver). Kryo instances aren't thread safe, so we'll have a bunch in any Spark job: https://github.com/EsotericSoftware/kryo#threading
        KryoSerializer serializer = (KryoSerializer) sc.env().serializer();
        KryoSerializerInstance instance = (KryoSerializerInstance) serializer.newInstance();
        Kryo kryo1 = serializer.newKryo();
        Kryo kryo2 = instance.borrowKryo();

So it seems like we are back in the same place: either...

Force users to manually specify our custom Kryo serializer in the spark config, any time they want to use Kryo (bad), or
Add Kryo as a dependency in ND4J and implement the KryoSerializable interface (bad, but maybe less bad?)

I'm actually all  for 1 as long as we give it to them. A reasonably documented "how to setup a spark job" should be enough..

https://github.com/deeplearning4j/nd4j/pull/969   + http://stackoverflow.com/questions/36144618/spark-kryo-register-a-custom-serializer Let me know if this is enough.

I'm closing this. Open it again if it's a problem.

Still experiencing issues with this. It appears that when you use a custom Registrator, Kryo wants you to define all the classes that are going to be used, which may be plenty...
NoClassFoundError: Could not initialize class org.nd4j.linalg.factory.Nd4j
and
Error constructing instance of class: org.nd4j.linalg.dataset.DataSet

Suggest this is re-opened.

My next step is to try and define a full object graph that will be used with Kryo. It looks like anything that is going to be passed between Spark nodes is going to be on that list.

So it looks like there's two entirely separate mechanisms/solutions here.
Option 1: The MyKryoSerializer extends KryoSerializer approach
This is set using:
sparkConf.set("spark.serializer", "my.custom.Serializer");
-> This should work, but it's not especially flexible - user might need a different custom serializer for other reasons
Option 2: Registrator plus custom serializer approach:
sparkConf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer");
sparkConf.set("spark.kryo.registrator", "my.custom.Registrator");	//We don't have a registrator yet, but it's easy to make (see below
public class TestRegistrator implements KryoRegistrator {
    @Override
    public void registerClasses(Kryo kryo) {
//        kryo.register(INDArray.class, new Nd4jSerializer());    //DOESN'T WORK - getting same NPE problem
        kryo.register(org.nd4j.linalg.cpu.nativecpu.NDArray.class, new Nd4jSerializer());   //DOES work, but is backend specific
    }
}

I'm not seeing any issues with DataSet, or anything else for that matter using option 2. Spark examples (tested local only) seem to work fine with only the above.
One simple solution to the backend specific problem is to do the following:

Have a static instance of the Registrator class that is always used
Use reflection to find out what classes implement the INDArray interface, and register all of them with the Nd4jSerializer

@AlexDBlack the registration could use reflection to discover sub classes
and use that for the registration instead. There is a way to discover the
backend.
On May 26, 2016 14:29, "Alex Black"<EMAIL_ADDRESS>wrote:

So it looks like there's two entirely separate mechanisms/solutions here.
Option 1: The MyKryoSerializer extends KryoSerializer approach
This is set using:
sparkConf.set("spark.serializer", "my.custom.Serializer");
-> This should work, but it's not especially flexible - user might need a
different custom serializer for other reasons
Option 2: Registrator plus custom serializer approach:
sparkConf.set("spark.serializer",
"org.apache.spark.serializer.KryoSerializer");
sparkConf.set("spark.kryo.registrator", "my.custom.Registrator"); //We
don't have a registrator yet, but it's easy to make (see below
public class TestRegistrator implements KryoRegistrator {
@Override
public void registerClasses(Kryo kryo) {//        kryo.register(INDArray.class, new Nd4jSerializer());    //DOESN'T WORK - getting same NPE problem
kryo.register(org.nd4j.linalg.cpu.nativecpu.NDArray.class, new Nd4jSerializer());   //DOES work, but is backend specific
}
}
I'm not seeing any issues with DataSet, or anything else for that matter
using option 2. Spark examples (tested local only) seem to work fine with
only the above.
One simple solution to the backend specific problem is to do the following:

Have a static instance of the Registrator class that is always used
Use reflection to find out what classes implement the INDArray
interface, and register all of them with the Nd4jSerializer

—
You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub
https://github.com/deeplearning4j/nd4j/issues/949#issuecomment-221781171

Yeah, I was thinking reflection on INDArray interface is easiest and should be fine. Wanted to check first. I assume there's no reference to the INDArray implementation class available via Nd4j or anything?

We could? I was just thinking the reflections library.
On May 26, 2016 14:32, "Alex Black"<EMAIL_ADDRESS>wrote:

Yeah, I was thinking reflection on INDArray interface is easiest and
should be fine. Wanted to check first. I assume there's no reference to the
INDArray implementation class available via Nd4j or anything?
—
You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub
https://github.com/deeplearning4j/nd4j/issues/949#issuecomment-221781568

One othe problem: both the the KryoRegistrator interface and the KryoSerializer class (i.e., options 1 and 2) are part of spark not part of the Kryo library.
So either approach requires spark as a dependency somewhere.
I guess we add Spark as a dependency for nd4j-kryo (with provided presumably)?

PR here: https://github.com/deeplearning4j/nd4j/pull/974
This should hopefully fix it. See comments there on usage.


Fixes error on instantiation of OAuthProvider if cacheDir doesn't exist.

The changes in #110 (https://github.com/creditsenseau/zeebe-client-node-js/commit/275bf6f78aa4c423a828df059c20cb24c2cfaeef) introduced a bug that the instantiation of the OAuthProvider fails if the OAuthProvidr.cacheDir doesn't exist.
The line fs.accessSync(OAuthProvider.cacheDir, fs.constants.W_OK) checks if it has write access to the directory ${homedir}/.camunda. Usually at first execution the directory .camunda doesn't exists and fs.acceessSync will throw something like Error: ENOENT: no such file or directory, access.
This PR just checks in the constructor if the cacheDir exists and if not creates it.

May a further remark to throwing in the constructor:

We have to mock fs in our tests as otherwise they will fail as in our CI environment the cacheDir is as well not writable.
May it makes sense to throw inside toFileCache as this is called inside getToken which will throw an error?

There is an incoming change that makes the cacheDir configurable - See http://zeebe.joshwulf.com/connection/oauth/#oauth-jwt-caching
I've added this patch to this branch: https://github.com/jwulf/zeebe-client-node-js/commit/1557b84a89f9cdda84844b04f3555d86cf11285f#diff-8c7e778d85a452fe257adc9c28fffd80
Incoming soon.
Thanks for this!

Thanks! Awaiting your changes. These will help us. When do you expect the release?
Will close this PR than.


Link option doesn't work on Rich Text Field in Query Counter app

When attempted to add a Link, the modal dialog box that pops up cannot be saved.  I can easily reproduce if needed.

I tried upgrading to 2.1 just to make sure it's not a legacy sdk issue, but the problem persists.  The RTE is a google component -- the modal dialog isn't in Ext, which might be what's causing the problem inside the settings dialog.
Perhaps making it a button that launches the dialog will separate it from the settings fog.

Thanks for looking into it John!  I believe people would be very happy with a button workaround.

Heather,  can you let me know if you still see this with the new version?  I was able to add a link.  The only issue that I see is if the link is not https and is clicked to open in the same window, the app throws a mixed content error.  If you open the link in a new tab, it opens without issue.

I don't know when this got fixed, but it has been working for a while now.  No longer an issue.


PLAT-143564: Update screenshot tests for Checkbox and CheckboxItem

Enact-DCO-1.0-Signed-off-by: Adrian Cocoara<EMAIL_ADDRESS>Checklist

[x] I have read and understand the contribution guide
[ ] A CHANGELOG entry is included
[ ] At least one test case is included for this feature or bug fix
[x] Documentation was added or is not needed
[ ] This is an API breaking change

Resolution
Updated screenshot tests for Checkbox and CheckboxItem
Checkbox: screenshot tests using indeterminat prop
CheckboxItem: screenshot tests using label
Additional Considerations
Links
PLAT-143564
Comments

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 3 committers have signed the CLA.:white_check_mark: daniel-stoian-lgp:white_check_mark: adrian-cocoara-lgp:x: 원동수/(협력사) 선임연구원/SW Platform(연)webOS개발실 webOS Framework Task(dongsu.won@lgepartner.com)원동수/(협력사) 선임연구원/SW Platform(연)webOS개발실 webOS Framework<EMAIL_ADDRESS>seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

LGTM


add notes to env, uglify, and json plugins

Note the impotance of plugin order for EnvPlugin, explain JSONPlugin, explain default behavior of UglifyPlugin
(Sorry about the trialing whitespace removal, my editor did that automatically.)

Great!! Thanks a billion!


Isomorphic Issue regarding dependecy

It is solved by installing the dependencies globally.

@sr6033 Do you have an issue nr. to this PR?

127


Docker image pull without login

Currently login is required to pull our docker image. Should not be

"..why I need to login before I pull this public image, otherwise "no basic auth credentials" will be reported."

This is definitely a fallback in cloud-based pipelines, which use a lot of open-source packages and can't have authentication as a part of process.
This is a Github issue, which have been open for over a year: https://github.community/t/docker-pull-from-public-github-package-registry-fail-with-no-basic-auth-credentials-error/16358/37
Possible workaround for this is to add the image openly available to dockerhub.
E.g. In Github action simply add one more job to tag and push latest image to dockerhub: (_ = spacebar)
services:
__robotframework-browser:
____#image: docker.pkg.github.com/marketsquare/robotframework-browser/rfbrowser-stable:v2.3.1:latest
____image: docker.io/xxxx/robotframework-browser/rfbrowser-stable:latest

Fixed by the image now being on dockerhub (see https://hub.docker.com/r/marketsquare/robotframework-browser ). We could document this fact better though.

Please fix these docker image lines in documentation (command line and Dockerfile options) as well. Thank You!
Very nice extension overall, well done!


Integrate spectron

Simple spectron integration with a very simple test example so we can build off of it.

Went ahead and switched to jest...a couple things here..

i made stricter checking on the URLs, but i can't go any further than that since they open in a chrome browser and not in the electron app. the positive side of this is that with the web nightwatch tests we can make sure these specific urls are not returning 404s.

I had to put in an explicit wait since the login button on uploader on the windows machine is loading enough for the automation to click on it and render it as visible, but not loading completely enough to actually complete the function of logging in

I've put in a remote session for debugging. the password is in the 1 password vault. I did this for debugging but not sure if you want me to leave it in there in case anyone else finds this helpful. If you'd like me to remove it I can


Fix mysql issue reported by Steve.

He was seeing an error message complaining about duplicate
LocalMysqlServer entries.
When I first added the dependency to the Mysql.Web nuget package in
https://github.com/GoogleCloudPlatform/getting-started-dotnet/commit/db9b167d2dde5343e049f062867eeac070d50650
it added a <remove name="LocalMySqlServer /> element that I couldn't prove
was necessary and cluttered the code, so I removed it.  Turns out, in some
cases, like the case Steve discovered, it is necessary.

LGTM


update application.properties for "APPLICATION FAILED TO START"

update application.properties for "APPLICATION FAILED TO START"

@automvc Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@automvc Thank you for signing the Contributor License Agreement!


Add audin channel for iOS

This PR adds an audin channel implementation for iOS.
The implementation is broadly a copy-paste of the macOS code, with the following key changes:

methods and variables are renamed appropriately ("mac" -> "ios")
audin_ios_set_format properly sets the audio format properties
parsing of add-in command line args is removed
authorization checks are removed

For the last point: the consuming application should add the NSMicrophoneUsageDescription to it's Info.plist; in which case iOS will prompt the user for permission at connection time. The consuming application may also properly obtain authorization ahead of time via the recordPermission API.

@freerdp-bot test


Switch fallthrough error

detect a few invalid switch statements.
we'll fail to detect all of them, especially those that involve nested fallthrough until something along the lines of neugram/ng#93 is implemented.
e.g:
 switch i {
 case 42:
   if true {
      fallthrough // should fail with: fallthrough statement out of place
   }
 default:
 }

Codecov Report

Merging #94 into master will decrease coverage by 0.01%.
The diff coverage is 27.58%.

@@            Coverage Diff             @@
##           master      #94      +/-   ##
==========================================
- Coverage   42.65%   42.64%   -0.02%
==========================================
  Files          19       19
  Lines        9182     9211      +29
==========================================
+ Hits         3917     3928      +11
- Misses       4827     4845      +18
  Partials      438      438

Impacted Files
Coverage Δ

typecheck/typecheck.go
21.61% <ø> (ø)
:arrow_up:

parser/parser.go
65.14% <27.58%> (-0.87%)
:arrow_down:

eval/eval.go
79.06% <0%> (+0.19%)
:arrow_up:

Continue to review full report at Codecov.

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


[WEB] Initial support for asyncify

This PR enables asyncify support for web runtime.
Asyncify is a feature to allow C++ to call async function in javascript. The emcc compiler will unwind and store the stack, returning control to JS runtime. The JS runtime needs to be able to await the promise and then call rewind to get to the original suspended point.
This feature can be potentially useful when we would like to call WebGPU sync in C++ runtime. As on web platform everything have to be non-blocking. Previously we simply forbid c++ runtime to call sync and have to return to javascript side and let javascript side to call async.
Because asyncify can increase the wams size by 2x, we don't enable it by default in emcc.py and still would need to pass in options.
We will confirm potential benefit tradeoffs before turning it on by default. Another catch is that as of now asyncify is not compatible with wasm exception, so we temporary turn wasm-exception it off for now. This is an item that is being worked on by emscripten so we might be able to turn it back on later.
The testcases are added.
reference: https://emscripten.org/docs/porting/asyncify.html

cc @CharlieFRuan @MasterJH5574 @rickzx

To enable it, when calling create_tvmjs_wasm, add ["-s", "ASYNCIFY=1"] to options


Self-Test Snapshot can cause window to become too large vertically and window won't re-size or scroll

When using the Self-Test Snapshot feature on a TalonSRX with a connected Mag Encoder, the Penguin Tuner window is automatically re-sized to a size that is too large vertically for a 1080p monitor, and it cannot be re-sized or scrolled to see the information at the bottom of the Self-Test Snapshot tab, or to access the Self-Test Snapshot button at the bottom of the tab to perform additional Self-Test Snapshots.

Check out the branch https://github.com/TytanRock/PenguinTuner/tree/snapshot-scroll and let me know how it is.
It wraps the self-test snapshot text box in a scrollbar window with both horizontal and vertical scroll, from my testing it doesn't automatically resize the window so it should be what you want.
Keep in mind if you're compiling for pi, keep using the shared object I provided in the other issue. I'm close to getting pi support but not there quite yet.

I tried it out and it worked well once. However, when I attempted to perform a second Self-Test Snapshot by using the button at the bottom of the window, it crashed the application.  In order to get it working a second time, I had to completely power down the motor controller, and re-boot the pi. It took me several re-boots to be able to repeat the experiment.
It seems to me like the whole Phoenix diagnostic server system is fundamentally non-robust on the pi,  as I have similar problems when running Phoenix Tuner on Windows and connecting to the pi via a network.
In my opinion, it would be better to have an app that runs native on a linux host system that just deals directly with the devices attached via socketCAN. Having to run this extra diagnostic server seems to be a source of a lot of problems, and the benefit is not yet clear to me.

That may be the case, I haven't been able to set up my test bench with the raspberry pi yet, so most of my testing has been excluding the diagnostic server.
When you say performing a second Self-Test Snapshot crashes the application, do you mean the Penguin Tuner application crashes, or the robot application that contains the diagnostic server? In either case, I'll get my test bench set up to reproduce this and figure out what's going on.
Regarding the purpose of diagnostic server being external to Penguin Tuner, I've responded here, let me know if you have other questions regarding it in the other issue.

Penguin Tuner application crashes. Window disappears.

This morning I discovered that performing a second Self-Test Snapshot did not crash Penguin Tuner when two motor controllers were attached to the CAN network, but when I disconnected one motor controller from the CAN network and performed two Self-Test Snapshots in a row, Penguin Tuner crashed.
However, after re-starting Penguin Tuner with only one motor controller attached and performing two Self-Test Snapshots in a row, Penguin Tuner did NOT crash again. So the behavior is not completely consistent.

I am running with the following code, derived from the CTR Electronics SocketCAN example, to create my diagnostic server:
////////////////////////////////////////
//
// Minimal app to cause a Phoenix diagnostic server to be run.
//
////////////////////////////////////////

#define Phoenix_No_WPI // remove WPI dependencies
#include "ctre/phoenix/platform/Platform.h"
#include "ctre/phoenix/cci/Unmanaged_CCI.h"
#include <string>
#include <chrono>
#include <thread>
#include <unistd.h>

using namespace ctre::phoenix;
using namespace ctre::phoenix::platform;

/** simple wrapper for code cleanup */
void sleepApp(int ms)
{
        std::this_thread::sleep_for(std::chrono::milliseconds(ms));
}

int main() {
        std::string interface;
        interface = "can0";
        ctre::phoenix::platform::can::SetCANInterface(interface.c_str());

        c_SetPhoenixDiagnosticsStartTime(0); // we will use the diag server this application installs

        while (true) {
                sleepApp(20);
        }
        return 0;
}

I was able to reproduce and found the issue. Good catch! It was indicative of a much larger issue I had with how I handled the backend updating the frontend. It should be fixed in the latest commit of snapshot-scroll, and I verified with my own pi self-testing a Victor SPX. Before I was able to reproduce on the second or third self-test, and so far I've done 10 in 10 tests without a failure.


Addressing a name resolution issue with mongodb atlas

Description
Created a new set of uris that are 'private' that we can trust to never resolve to public IP addresses.
Motivation and Context
Closes #784
How Has This Been Tested?
Tested in CI and QA environments.
Types of changes

[X] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Enhancement (improves on existing behavior)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[X] My code follows the code style of this project. (Did you install and run the pre-commit hooks?)
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

:+1:


The return type is displayed twice in docs.

Screenshot:

We should fix it immediately.

I think that it because we have explicitly specified the return type in the docstrings.

I have fixed this issue.


Cleaning Readme Data

There are some typos in the Readme file and also the black colored text in the flow chart at the bottom is not readable by those who are using Night Theme!

Thanks for finding these issues. looking forward to your PR with the fix.

i would like to look into this issue

you should add fixes #issuenumber to your PR description so that GitHub can link your PR to this issue


Ensure city input is a string

Description

Make linter happy and ensure city is a string.
Motivation and Context

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] I have read the CONTRIBUTING document.
[ ] I haven't repeated the code. (DRY)
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Already fixed in #125 need rebase shared branch on top of main


Fix iOS 11 text rendering issue

It looks like on iOS 11, when a text bubble has a carriage return, it renders blank like this:

It looks like Chatto is setting allowsNonContiguousLayout to true on the text view. This option is for large documents when you only want to render part of it (you can read more about this on the "Noncontiguous Layout" section of NSLayoutManager.
It is stated that if you use that option, you are in charge of telling the layout manager to generate the glyphs for a given range.
We have 2 options:

Use one of the ensureGlyph(...) functions.
Stop using allowsNonContiguousLayout.

I think it makes no sense to use the ensureGlyph option as this is for only generating a given range. Bubbles in general are needed to be fully rendered and determining the range to render a given large bubble is complex and I believe out of the scope of ChattoAdditions. This PR then simply deletes the line that sets allowsNonContiguousLayout to true.

Codecov Report

Merging #364 into master will increase coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #364      +/-   ##
==========================================
+ Coverage    63.9%   63.92%   +0.01%
==========================================
  Files          63       63
  Lines        3571     3570       -1
==========================================
  Hits         2282     2282
+ Misses       1289     1288       -1

Impacted Files
Coverage Δ

...Chat Items/TextMessages/Views/TextBubbleView.swift
69.14% <ø> (+0.39%)
:arrow_up:

Continue to review full report at Codecov.

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

@0xpablo I'll do performance tests on slow devices for both iOS 10 and 11. I have no idea why it was set to true from the beginning, but I believe it was related to rendering performance. @diegosanchezr Do you remember anything about it?

I don't recall anything in particular. It's just probably there with hopes of better performance as it was working fine with it at that time.


Double "##" in colors s

I'm migrating to lazy at the moment
and I kept getting this error which complains about the hex not being a valid hex color when trying to run
on this line https://github.com/windwp/windline.nvim/blob/66badcb002c91f6d4bfc11726c988441a3aada6c/lua/windline/utils.lua#L78
the color parameter contains two '##" I searched through my whole codebase that could create a double '##" but could find nothing
using packer it works just fine.
windline.setup({
  colors_name = function(colors)
    -- colors contains strings with hex colors that look like this: ##ffffff
  end
})

my current workaround
windline.setup({
  colors_name = function(colors)
    for k, v in pairs(colors) do
      colors[k] = string.gsub(v, "##", "#")
    end
    return colors
  end
 })

the pr that bricks it for me (i know you probably don't want to look at this but yeah provided it anyways)
https://github.com/danielnehrig/nvim/pull/20/files
my master with packer works just fine

maybe because this line
https://github.com/windwp/windline.nvim/blob/master/lua/windline/themes/init.lua#L48
i am not use lazy.nvim right now so i am not sure about that.
can you try run this
lua vim.print(require('windline.themes').get_hl_color('Normal'))

i have no clue what happend the issue fixed itself auto magically nothing changed code wise after creating the issue
sorry for wasting your time and thanks for the fast response


How to change start segment when viewDidLoad not using setSelectSegmentAt(_:,animated:)

When I need to change start_index of segmentController(container),
I use this code
var start_index : Int?
if start_index == 0{
         setSelectedSegmentAt(start_index, animated: true)
    }
    else if start_index == 1 {
        setSelectedSegmentAt(start_index, animated: true)
    }
    else if start_index == 2{
        setSelectedSegmentAt(start_index, animated: true)
    }

Above code is showing segment move animation when viewDidLoad(segmentController(container)).
But, I want to not showing movement animation when viewDidLoad(segmentController(container))
How can I do this?

did you try animated: false

@feliciaf yeah, I did it. Not appear movement animation, but selected segment effect is still remain.
I could see both selected firstTab and otherTab

Please use setSelectedSegmentAt in viewWillAppear func.
override func viewWillAppear(_ animated: Bool) {
	super.viewWillAppear(animated)
	setSelectedSegmentAt(3, animated: false)
}


doc: Crate missing html_root_url attribute

This'll help cross-crate links in foreign crates! It should be set to https://docs.rs/rayon/$version

Looks like this one's all done @cuviper.

Let's get the same addition for rayon-core and the pending rayon-futures.

@cuviper, I'm working on adding the attribute to rayon-core and rayon-futures, should I just match the docs.rs version to whatever is in the Cargo.toml? For both crates, that current version doesn't have published docs, but should I just leave it and assume when a release gets pushed it'll all work?


Obtaining user granted scopes from Google OAuth

When the user is authenticating his account with GoogleAPI OAuth service, the application can ask for a specific set of scopes.
That list is presented to the user like the screenshot below:

However the user can decide to allow only a reduced set of scopes to the associated application.
In that case the application can either tell the user:

The application won't work because some of them are mandatory
or
Disable certain part of the application to comply with the user granted scopes.

Currently within the LoginStorage::StoreLogin callback, the Login object only contains the token pairs (access, refresh).
It would be interesting to get the authorized grantedScopes so the application can decide if it wants to perform 1) or 2) above.

hmmmm very interesting. Does this belong in the LoginStorage though? I wonder if a new, optional callback function is required to react to a completed login and the associated grantedScopes? Maybe both?

Working my way throught the integration of multiple Authenticators (for multiple accounts), we need to understand the following:

Account<EMAIL_ADDRESS>- grantedScopes == requestedScopes
Account<EMAIL_ADDRESS>- grantedScopes != requestedScopes (missing ScopeA)

Knowing that ScopeA is missing from<EMAIL_ADDRESS>will allow us to update the application functionality to prevent certain usage.
So we could get that information within an updated Login object.
Something like:

Not sure we would need a delegate since we can introspect the Login object. Perhaps a flag could bve added that would indicates if all scopes were authorized or not.
But we could easily perform the difference using the AppCredentials.scopes array.
Your insights is appreciated.

Thinking about this again this morning and adding more details.
Knowning that the LoginStorage for the Authenticator is optional, perhaps as you suggested, an AuthenticationResult delegate would be more appropriate.
If specified, it would be invoked with the proper Login object.

I Definitely need a delegate / callback closure with the AuthenticationResult and the Login object.
Will cleanup my current branch and submit a PR against #11.

In the Authenticator.swift code at line 97 up to line 101 there are 3 local variables that are defined.
let login = ...
let result = ...
let action = ...
I think we can get rid of them because they are unused.
Please confirm.

EDIT: My bad forget this.... I was not looking hard enough 🤦🏻♂🤦🏻♂

No worries! 😃

I have been moving forward with this PR to obtain the Login information along with the authorized scopes.
However I have this "losing MainActor" warning when specifying my closure to obtain AuthenticationResult from the Authenticator
New Authenticator Code
New closure type in Authenticator
public final class Authenticator {
    public typealias UserAuthenticator = (URL, String) async throws -> URL
    public typealias AuthenticationResult = (Login?, AuthenticatorError?) -> Void
    ...

Authenticator Configuration can now take an optional AuthenticationResult
public init(appCredentials: AppCredentials,
           loginStorage: LoginStorage? = nil,
	   tokenHandling: TokenHandling,
	   mode: UserAuthenticationMode = .automatic,
           authenticationResult: AuthenticationResult? = nil) {

The loginTaskResult function will now call the closure with the result of the loginFromTask function. So either a Login or an AuthenticatorError.
Application Usage
In my test app, I have a custom NSViewController that defines an authenticatedLogin variable.
private var authenticatedLogin: Login?
AuthenticationResult Function
This function is provided as the closure to obtain results.
	// This is the callback to receive the response of the authentication process
	private func authenticationResult(_ login: Login?, _ error: AuthenticatorError?) -> Void {
		os_log(.debug, log: .general, "Got OAuthenticator results....")
		if error == nil, let login = login {
		   self.authenticatedLogin = login
		}
                ...

Starting Authentication
When a user decides to start authenticating his account, this @IBAction is invoked.
@IBAction func startAuthorization(_ sender: NSButton) {
   Task {
	do {
		let authenticator = GoogleOAuthPermission.configureAuthenticator(scopeType: .fullScope,
						authenticationResult: self.authenticationResult)
		try await authenticator.authenticate()
		if let login = self.authenticatedLogin {
			self.oauthOnboardingSuccess(login: login)

     ...

This is the warning issued.

What I assume is that my callback function is having an implicit MainActor association because it is defined within an NSViewController.
I could change the @IBAction function so the Task runs on MainActor like:
   Task { @MainActor in
	do {

This removes the warning but I'm not sure I want to block the Main Queue during authentication...
Wondering if this article could be related.
Let me know your insights before I push my PR.

This removes the warning but I'm not sure I want to block the Main Queue during authentication...

After som tests, this works and I just realized  the authenticate() function was modified to be run on @MainActor` so everything works perfectly.

I have found it extremely difficult to balance the MainActor isolation requirements with an Authenticator API that is convenient to use. I've made a few small changes to help, but there are some fundamental limits.
But one thing I want to point out: Task { @MainActorruns on the main thread, but only synchronous calls inside it block. All async calls will unblock it and allow stuff to run on the main thread as well.
I think I would need to see more code to understand what's up. How is self.authenticationResult and GoogleOAuthPermission.configureAuthenticator defined? I think one of those is capturing a closure without making it @MainActor maybe?


Build fails with out of memory errors

The build is failing with out of memory errors.
Tested on master and most recent tags
System: Arch linux
uname -a
Linux rampoina 5.15.10-arch1-1 #1 SMP PREEMPT Fri, 17 Dec 2021 11:17:37 +0000 x86_64 GNU/Linux

xa --version
xa (xa65) v2.3.12

6502-gcc --version
6502-gcc (GCC) 8.4.1 20210210
Copyright (C) 2018 Free Software Foundation, Inc.

===== DATA04-BANK =====
  bne end
game/data/stages/gem/gem-logic.asm:line 488: 8d72:Out of memory error
  lda stage_gem_gem_cooldown_high
game/data/stages/gem/gem-logic.asm:line 489: 8d74:Out of memory error
  rts
game/data/stages/gem/gem-logic.asm:line 492: 8d75:Out of memory error
  lda stage_gem_gem_position_x_high
game/data/stages/gem/gem-logic.asm:line 499: 8d77:Out of memory error
  sta tmpfield1

build.log

For what is worth, I can also reproduce this very same issue with my old ubuntu:
uname -a
Linux Rachael 4.4.0-186-generic #216-Ubuntu SMP Wed Jul 1 05:34:05 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

xa --version
xa (xa65) v2.3.5

6502-gcc --version
6502-gcc (GCC) 8.4.1 20210210

using tag 2.0-alpha10 but with same exact result:
===== DATA04-BANK =====
  bne end
game/data/stages/gem/gem-logic.asm:line 488: 8d72:Out of memory error
  lda stage_gem_gem_cooldown_high
game/data/stages/gem/gem-logic.asm:line 489: 8d74:Out of memory error
  rts

Oh sorry, I really should indicate it in the build instructions:
XA does not allocate enough memory to compile Super Tilt Bro. since a long time. I switched to a modified version, as it is a compile-time constant.
Here it is: https://github.com/sgadrat/xa65-stb
So, you can compile this xa version, and build with: XA_BIN=/path/to/your/xa_dir/xa ./build.sh

thank you very much, the build process seems to succeed now!
I can't seem to run the generated rom though.
fceux complains about
iNES mapper #3872 is not supported at all. fceux
and mednaffen seems to load the initial animation but hangs there

The build should output multiple files, three of them may interest you:

Super_Tilt_Bro_(E).nes: the game with Wi-Fi capability. As the physical mapper is in development, it is supported by no emulator. We have an experimental fork of FCEUX with support for it here: https://github.com/sgadrat/fceux/tree/rainbow-stable
tilt_no_network_unrom_(E).nes: the game without networking capability but compatible with most emulators (UNROM mapper)
server_bytecode.nes: actually not a valid NES ROM, but allows to build the server (here, but severly lacks documentation: https://github.com/sgadrat/super-tilt-bro-server)

I see, that makes sense.
tilt_no_network_unrom_(E).nes works without any issues!
thank you for your explanation and patience (and the awesome game!)

Happy that you got you out of trouble. Have fun with the game!


Implement the build task

CLOUDBLD-8136
In the build task, acquire a slot on a remote host. Make sure to unlock
this slot after the build ends.
Update PodmanRemote to run an actual build on the acquired remote host.
...and more fixes, see individual commits
Maintainers will complete the following section

[ ] Commit messages are descriptive enough
[ ] Code coverage from testing does not decrease and new code is covered
[ ] Python type annotations added to new code
[ ] JSON/YAML configuration changes are updated in the relevant schema
[ ] Changes to metadata also update the documentation for the metadata
[ ] Pull request has a link to an osbs-docs PR for user documentation updates
[ ] New feature can be disabled from a configuration file

For the last commit: it is not the right solution by any means, but it does work for our use cases so I'm thinking we could merge it and address it later.
The right solution might be to pull all base images before starting the build and pass the correct --authfile and --tls-verify to each pull command. Or maybe not, because then builds could end up using the base images pulled by other builds (race cnoditions). Probably not a problem because we pin to digest, but still.
Another solution could be to change the way we do configuration, so that all the registries have to share a single authfile. And --tls-verify could be all or nothing - nothing is insecure or everything is insecure.

PR looks good to me. :+1: Thanks @chmeliik !

Rebased on master and removed the useless --memory-swap option


Using a linear algebra library

What do you think of relying on an external linear algebra crate for the Vector representations and operations?
In this way, we could benefit from performance optimizations applied to the external crate.
Moreover, I think at a certain point we could face the need for Matrices (I am thinking, for example, to the implementation of the STFT) that for sure would be provided by the library.

Yes it makes sense. I would postpone it till Rust 2018 and we need linear algebra library with Complex number support.


add overlap functionality to Timex.Interval

Summary of changes

Find the overlap Interval between two intervals.
Return {:error, :no_overlap_interval} if intervals
do not overlap, (including overlapping at one instant)

Checklist

[x] New functions have typespecs, changed functions were updated
[x] Same for documentation, including moduledocs
[x] Tests were added or updated to cover changes
[x] Commits were squashed into a single coherent commit

Coverage increased (+0.4%) to 70.978% when pulling 8764c923d1b99bddd0b61202b34ba086b95b788e on glassbead0:add_overlap_to_interval into<PHONE_NUMBER>bbad4b42cefa48718bf11512c9e0f0 on bitwalker:master.

Coverage increased (+0.4%) to 70.978% when pulling 8764c923d1b99bddd0b61202b34ba086b95b788e on glassbead0:add_overlap_to_interval into<PHONE_NUMBER>bbad4b42cefa48718bf11512c9e0f0 on bitwalker:master.

Coverage increased (+0.4%) to 70.978% when pulling 8764c923d1b99bddd0b61202b34ba086b95b788e on glassbead0:add_overlap_to_interval into<PHONE_NUMBER>bbad4b42cefa48718bf11512c9e0f0 on bitwalker:master.

Coverage increased (+0.4%) to 70.978% when pulling 8764c923d1b99bddd0b61202b34ba086b95b788e on glassbead0:add_overlap_to_interval into<PHONE_NUMBER>bbad4b42cefa48718bf11512c9e0f0 on bitwalker:master.


wrong date returned when using last()

When using last() function the beginning of unix epoch is always returned as timestamp. Its a little troublesome because I cannot use ORDER BY time DESC limit 1 yet and I simply want to get the latest value with its timestamp.
Query:
SELECT last(value) FROM /^response_times.service_1.*/ LIMIT 1

Response:
{"results":[{"series":[{"name":"response_times.service_1.pl.warsaw.dc1","columns":["time","last"],"values":[["1970-01-01T00:00:00Z",0.036371598]]},{"name":"response_times.service_1.us.new-york.dc3","columns":["time","last"],"values":[["1970-01-01T00:00:00Z",0.999999999]]}]}]}

Duplicate of https://github.com/influxdb/influxdb/issues/1577


Fix several loops in SequenceNumberTranslator

Description
This PR fixes an issue in SequenceNumberTranslator when there are several loops of sequence numbers in total. I added a Unit Test to cover this case too.

[x] It needs and includes Unit Tests

Changes in Client or Server public APIs
No needed.
[] It includes documentation for these changes in /doc.

The output seq of packet with seq 6 will mess up with seq 16 if the input packet sequence like below:
1, PacketState::Forward,
10, PacketState::Skip,
20, PacketState::Forward,
5, PacketState::Forward,
6, PacketState::Forward,
16,PacketState::Forward,


Problem with Ender IO Endergy addon

Issue Description:
When logging into a custom modpack that I made, after adding the Endergy addon, I cannot log on as minecraft cannot find the registry of the wooden door item, despite having the wooden door recipe. Before adding Endergy however, everything worked fine before adding Endergy, and no other mods were added alongside Endergy.
What happens:
Minecraft does not register wooden door item after installing Endergy.
What you expected to happen:
To be able to log on to my server.
Steps to reproduce:
I am not going to add the steps as it requires you to have the modlist, which I do not know where to put. if someone asks for it, I can tell them in the comments.
1.
2.
3.
...

Affected Versions (Do not use "latest"):

EnderIO: 5.3.70
EnderCore: 0.5.76
Minecraft: 1.12
Forge: <IP_ADDRESS>60
SpongeForge? no.
Optifine? no.
Server
EnderIO Endergy 5.3.70

Your most recent log file where the issue was present:
If you need the list of mods in the custom modpack, please just ask
The paste will be short, I only included the error as the log contains personal information that I do not wish to share. The log is here: https://pastebin.com/e0Rv8YdX

sorry we no longer support 1.12 anymore nor maintain the mod for 1.12, we have moved to 1.20+ with full rewrite

Will support continue in any minor way after the update to 1.20?


please support cgroupv2 resource limits for Java 11

Apparently cgroupv2 is not supported for Java 11:
% docker run -m 128m --cpus 0.5 -it --rm eclipse-temurin:11.0.13_8-jdk-centos7 java -XX:+UseContainerSupport -XshowSettings:system -version
Unable to find image 'eclipse-temurin:11.0.13_8-jdk-centos7' locally
11.0.13_8-jdk-centos7: Pulling from library/eclipse-temurin
2d473b07cdd5: Pull complete
3df6893209e3: Pull complete
bba8d1b451eb: Pull complete
16ca8e6cd0a4: Pull complete
Digest: sha256:8170c0c5ace869bf9ab963bcc8c5b30d7494cdeecd5bf61338654f95220d03b5
Status: Downloaded newer image for eclipse-temurin:11.0.13_8-jdk-centos7
Operating System Metrics:
    No metrics available for this platform
openjdk version "11.0.13" 2021-10-19
OpenJDK Runtime Environment Temurin-11.0.13+8 (build 11.0.13+8)
OpenJDK 64-Bit Server VM Temurin-11.0.13+8 (build 11.0.13+8, mixed mode)

This is fatal. For Java 17 there is no such problem
% docker run -m 128m --cpus 0.5 -it --rm eclipse-temurin:17.0.1_12-jdk-centos7 java -XX:+UseContainerSupport -XshowSettings:system -version
Unable to find image 'eclipse-temurin:17.0.1_12-jdk-centos7' locally
17.0.1_12-jdk-centos7: Pulling from library/eclipse-temurin
2d473b07cdd5: Already exists
5eafaeccaf7b: Pull complete
b02d4877e7b0: Pull complete
ec4de886ffc6: Pull complete
Digest: sha256:97f57417e3e5da2da2dc8c4a43ba268d5546948221666f736377943382011ba1
Status: Downloaded newer image for eclipse-temurin:17.0.1_12-jdk-centos7
Operating System Metrics:
    Provider: cgroupv2
    Effective CPU Count: 1
    CPU Period: 100000us
    CPU Quota: 50000us
    CPU Shares: -1
    List of Processors: N/A
    List of Effective Processors, 8 total:
    0 1 2 3 4 5 6 7
    List of Memory Nodes: N/A
    List of Available Memory Nodes, 1 total:
    0
    Memory Limit: 128.00M
    Memory Soft Limit: 0.00K
    Memory & Swap Limit: 256.00M

openjdk version "17.0.1" 2021-10-19
OpenJDK Runtime Environment Temurin-17.0.1+12 (build 17.0.1+12)
OpenJDK 64-Bit Server VM Temurin-17.0.1+12 (build 17.0.1+12, mixed mode, sharing)

Would it be possible to backport cgroupv2 support  into Java 11, making it suitable for Docker and Kubernetes on today's Linux systems (Debian 11, Redhat 8, etc)?

Yes, cgroups v2 support is JDK 15+ only. The bug that introduced this was:
https://bugs.openjdk.java.net/browse/JDK-8230305 (and friends)
It would be an enhancement backport and OpenJDK 11 is in bug-fix-only mode. One more reason to use JDK 17 ;-)

Sorry to say, but JDK 17 is way too new to drop all JDK 11 code. Not to mention that JDK 8u312 works very well with legacy cgroup support. JDK8 shows that backports are a common part of the migration procedure to newer versions.
I am not a Java developer, but AFAIU Java and object orientation and all that stuff is about introducing new features by extending existing constructs. I doubt that this polymorphism paradigm has been ignored for resource management in Java.


XCode 10 GM and Swift 4.2 Compiler Warning

Building the TwitterCore cocoapod shows compiler warnings.
Expected behavior
The cocoapod should build with no warnings.
Actual behavior
/Users/joelaws/Workspace/kratos/Pods/TwitterCore/iOS/TwitterCore.framework/Modules/module.private.modulemap:1:29: Private submodule 'TwitterCore.Private' in private module map, expected top-level module
/Users/joelaws/Workspace/kratos/Pods/TwitterCore/iOS/TwitterCore.framework/Modules/module.private.modulemap:1:29: Rename 'TwitterCore.Private' to ensure it can be found by name

Steps to reproduce the behavior

Download XCode 10 GM
Setup a project and Podfile that depends on TwitterCore
Compile the main target and the TwitterCore cocoapod
see the build warnings

Has anyone managed to obtain a version of TwitterKit v3.4.0 that is error free?  I have checked many forks and branches and cannot see any error-free versions which compile error-free and produce no issues.  If it is not this issue it is

Umbrella header for module 'TwitterCore' does not include header 'TWTRColorUtil.h'

@rajul-arora @evansobkowicz
I don't have any experience working with frameworks or I'd make my own PR, but I wouldn't even know how to confirm it works or not,
Any chance we can get implementations to fix this error (and subsequent TWTRColor.h issue) similar to these commits from one of the forks?
Remove the private module:
cb75d55a7b8d42e107658250d3417bd64678e973
Add TWTRColor.h to the public module map:
dc4b422d5b196e4aa420e6b28aad051afac2974b
Dunno if this one is required, but was done right after the others, unlink libTwitterCore in TwitterKit.framework:
de5674fe5162eb3f541389be1cda64a83551a20f
Been lookin' forward to the day we have a warning free project to compile for years, and this is one of the last couple things preventing that.

Posted on the twitter dev forum here

I removed the Twitter SDK from my cocoapods and no longer have this issue
https://blog.twitter.com/developer/en_us/topics/tools/2018/discontinuing-support-for-twitter-kit-sdk.html

Got some working solution. It fixed all TwitterCore related warnings for me.
https://gist.github.com/npu3pak/108d8332a774289c08472d6fd85a1bbb


fix makefile separator syntax for greyscale rule

Fix #9
This PR fix #9 (greyscale rule) by using tabs separator instead of spaces.

:+1: thanks @rafaelmds


[Feature]: Team Members of Specific Resources

Description
Currently, team members apply for the entire general system. I want to have a specific team member for each resource. So, imagine that each resource has a new menu called members / team / team members where the admin can invite people to specific resources.

Minimal Reproduction (if possible, example repository)
n/a
Exception or Error
No response
Version
n/a

@DeVoresyah can i pick this up ?
/attempt #2378

hi @abhishek818 , any update on this?

Hello, i would like to attempt this

Hello, i would like to attempt this

yes you can

I see the following split of permissions possible:

Would you like to implement only the resource layer? So that you can either
A) Add someone to the whole team
B) Add someone to a specifc resource in a specific enviroment in a specific project

hi @WcaleNieWolny can we do quick online meeting to discuss this? I'm happy to add tips for you later

yes, i would be happy to do so. Let me know when you are available

yes, i would be happy to do so. Let me know when you are available

pls add me on discord devoresyah

I have spent some time researching and I think that i now have a good grasp of the issue. The problem with implementing what you would like is that there is no quick and easy way to do it. Currently you are either a member of a team or you are not. The proper way to implement this would be to add a new a few new columns into the team_users. You would add project_id, enviroment_id and resource_id. Essentially it would determine what you can access. For example, if project_id is set you would be ONLY able to access that project and if both project_id and environment_id are set you would be only access that specific enviroment in that specifc project.

I will be working on this during the next week, as this should be included in the v4 stable (after a few priority bugs are fixed).
The plan is as follows:

Owner: Can do everything
Admin: Can manage all resources, but not users, servers
Collaborator: Can only manage the resources he created
Custom: Add specific permissions to this role. Checkboxes with permissions and a dropdown where resources can be added to a user (services or applications).

Is this the way you would want me to implement this? Any additional things you would like to see?

I will be working on this during the next week, as this should be included in the v4 stable (after a few priority bugs are fixed).
The plan is as follows:

Owner: Can do everything
Admin: Can manage all resources, but not users, servers
Collaborator: Can only manage the resources he created
Custom: Add specific permissions to this role. Checkboxes with permissions and a dropdown where resources can be added to a user (services or applications).

Is this the way you would want me to implement this? Any additional things you would like to see?

perfect

I’m currently teaching Frontend Development at an advanced vocational school, and I’m interested in using this to host a server for my students.
Is it possible to create separate teams so that multiple students within the same team can access, modify, and trigger deployment for the same app, without being able to access apps from other groups?
Additionally, it would be great if I could set up apps for them that connect to private GitHub repositories within my organization (we use GitHub Classroom) to ensure they can’t access each other’s source code.

Looking forward to this!
It would solve this feature request as well (I believe?): https://github.com/coollabsio/coolify/discussions/1820

Any news about this feature? My API-development course where I would use this starts right after New Year’s and in February (if at all possible) I’d have to have a server running for my students 😊


Update sample to use MSAL

Update sample to use MSAL for authentication against web API, because of https://github.com/azure-deprecation/dashboard/issues/60
Link to the corresponding documentation: https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/wiki/Client-credential-flows
The sample should also contain, that when MSAL is used, the scope should be constructed as:
string[] scopes = new string[] { $"{_options.ServiceUrl}/.default" };

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

ID: ccb27f5b-4110-dcb0-e4da-b4e8e77b4c6d
Version Independent ID: 33776e00-0543-3001-d2a0-b09148e40625
Content: Enhanced quick Start(Microsoft Dataverse) - Power Apps
Content Source: powerapps-docs/developer/data-platform/webapi/enhanced-quick-start.md
Service: powerapps
GitHub Login: @JimDaly
Microsoft Alias: jdaly

@skalahonza  Thanks for the suggestion. The topic has been updated to use MSAL, and a complete VS solution download has been added.
https://docs.microsoft.com/en-us/powerapps/developer/data-platform/webapi/enhanced-quick-start


When directly binding TileContainer to an OData model the rendering does not work because the parent has height 0

We are directly binding a TileContainer in a view to a data model. Unfortunately the TileContainer does not render correctly when the other components are not rendered yet.
<TileContainer id="tileContainer" tiles="{path: 'model>/Entities', filters: [{path:'Parent', operator:'EQ', value1:'794EF2D0-A55D-451F-A2E4-4D737BFC35DB'}], sorter: 'Sortierung'}">
						<StandardTile id="standardTile" title="{model>Title}" icon="{model>Icon}"
							number="{model>Number}" numberUnit="{model>NumberUnit}" info="{aocloudModel>Info}"
							infoState="{model>InfoState}" press="onStandardTilePress"></StandardTile>
					</TileContainer>

It runs and then sets the current index to NaN:
sap-ui-core-dbg.js:15229 2015-05-29 15:09:55 current index 0 -
sap-ui-core-dbg.js:15229 2015-05-29 15:09:55 current index 0 -
sap-ui-core-dbg.js:15229 2015-05-29 15:09:55 current index 0 -
sap-ui-core-dbg.js:15229 2015-05-29 15:09:55 current index NaN -
sap-ui-core-dbg.js:15229 2015-05-29 15:09:55 current index NaN -
sap-ui-core-dbg.js:15229 2015-05-29 15:09:55 current index NaN -

We are using openui5 1.28.2
I will contribue a fix for this issue.

The important variables are:
this._iCurrentTileStartIndex
this._iMaxTiles

Thanks for the bug report, see the pull request for updates.


Uncaught TypeError: elm.size is not a function

Error type: JS
File: /design/themes/cscart-boilerplate-master/js/core.js
When: after passing to the next page of product list
CS-Cart version: 4.4.3 (tested on clean version)
Error msg: "Uncaught TypeError: elm.size is not a function"
Ajax request: /category/page-2/?result_ids=pagination_contents&is_ajax=1

I found a solution in responsive theme. In fn scrollToElm(), before (line 1442, core.js):
            if (!elm.size()) {
                return;
            }

you have to add:
``
if (typeof(elm) === 'string') {
if (elm.length && elm.charAt(0) !== '.' && elm.charAt(0) !== '#') {
elm = '#' + elm;
}
elm = $(elm);
}

Thanks for the report.

I replaced that code as per the solution by elino79 but then that results in:
'undefined is not an object (evaluating 'elm.offset().top')'
Which then breaks the product filters, you can only filter 'once' and then not again, without refreshing the page.
Kind of a breaking point of the site in general, I would appreciate a fix asap please, CS Cart team.

Hello, @elnino79, @moondawg69.
Can you please check if #83 fixes the issue for you?

Hi, @elnino79 , @moondawg69.
Can you check, is PR #89 fixes this issue?

PR #89 fix this issue.


Added support for Theme Color

Using Theme Colors on View and Toolbar

Forgot to add how it's used:
config.themeColor = UIColor(named: "ThemeColor")!
config.cropToolbarConfig.themeColor = UIColor(named: "ThemeColor")!
config.cropVisualEffectType = .custom(color: UIColor(named: "ThemeColor")!)

Forgot to add how it's used:
config.themeColor = UIColor(named: "ThemeColor")!
config.cropToolbarConfig.themeColor = UIColor(named: "ThemeColor")!
config.cropVisualEffectType = .custom(color: UIColor(named: "ThemeColor")!)

@ejuden
Looks good!
One suggestion. Can you make the theme setting a little bit simpler? For example, we only set config.themeColor, then config.cropToolbarConfig.themeColor and config.cropVisualEffectType can be set automatically.
Also, can you add a new demo for this feature to the Example project? Thanks!

I will be glad to, but you think any user might want to separate the
toolbar, view and mask colors?
I have mine where I can make them different colors.
On Thu, Nov 12, 2020 at 8:19 PM Yingtao Guo<EMAIL_ADDRESS>wrote:

Forgot to add how it's used:
config.themeColor = UIColor(named: "ThemeColor")!
config.cropToolbarConfig.themeColor = UIColor(named: "ThemeColor")!
config.cropVisualEffectType = .custom(color: UIColor(named: "ThemeColor")!)
@ejuden https://github.com/ejuden
Looks good!
One suggestion. Can you make the theme setting a little bit simpler? For
example, we only set config.themeColor, then
config.cropToolbarConfig.themeColor and config.cropVisualEffectType can be
set automatically.
Also, can you add a new demo for this feature to the Example project?
Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/guoyingtao/Mantis/pull/73#issuecomment-726464743, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACURL66MHPZK4ZWAVUMFYTDSPSJTLANCNFSM4TT5PCTQ
.

I will be glad to, but you think any user might want to separate the toolbar, view and mask colors? I have mine where I can make them different colors.
…

Maybe we can add a new property CropViewBackgroundColor to Mantis.Config
If any user wants to separate the toolbar, view and mask colors, then the user just need to set them separately (CropViewBackgroundColor/config.cropToolbarConfig.themeColor/config.cropVisualEffectType)

Since this ticket hasn't been discussed for a long time, I will close it for now. You can reopen it in the future if needed.


MongoError: The dotted field 'BotBuilder.Data.PreferredLocale' in 'data.BotBuilder.Data.PreferredLocale' is not valid for storage.

Apparently, the BotBuilder.Data.PreferredLocale is stored as part of the userData, instead using a different rowKey like others, such as BotBuilder.Data.SessionState
The problem: when session.preferredLocale('zh-CN') is called, this invalid mongo field (BotBuilder.Data.PreferredLocale) is added under userdata.
The solution:

remove the rowKey condition check for 'userData' on line 32 and 56.
replace the '@' with '\uff0e' (utf16 dot symbol as mongo suggested) on line 33 and 57.

Thanks for report, Asap i Will look into it

@aakashkag did you forget to commit in the changes?


Add missing fields into Tx.

Describe the feature you'd like
Currently the Tx type taken from plutus-ledger-api lacks:

[ ] metadata
[ ] withdrawals
[ ] certificates

These should be added together with updating:

toCardanoTxBody translation
validation in emulator
adding related constraints in plutus-ledger-constraints
...

Describe alternatives you've considered
No response

I've added this issue as I lacked a place discussing changing the Tx and the old one taken as is from plutus-ledger-api is as I understand only temporary.
related issues:

metadata #93
withdrawals #395
Should witnesses be stored on the side? #459

I went with such a change: Ledger/Tx/Internal/Tx.hs here #468.
Making these changes:

moving out all script and datum witnesses into seperate txScripts and txData fields, leaving hashes in inputs/etc. Before these were attached to inputs, but in a Maybe field, so this doesn't change that expected witnesses might or might not be present.
attaching redeemers to inputs/mints (conversely ^). Before the Redeemers map was very loosely related to scripts with RedeemerPtr's, which makes it hard to manually construct transactions with more than 1 mint script. I took suggestion from TxConstraints where constraints contain redeemers but refer to scripts only by hashes.
adding certificates/withdrawals/metadata fields

I mostly fixed compiling and added withdrawals translation in toCardanoTxBody based on plutus-simple-model.
Adding validation for withdrawals/certificates is harder as ValidationContext doesn't contain state needed to validate these (like rewards/delegations/registered credentials).
I would enjoy greatly discussing the expected shape for Tx and this proposition for it.

Closing because of https://github.com/input-output-hk/plutus-apps/issues/459#issuecomment-1485138902


Enabling disable high DPI setting doesn't work

Hello,
I have  a game that works when I manually set the disable high dpi setting or set it to Application. To save a few clicks (of going to properties and setting high dpi) I decided to use this. But unfortunately setting it on the .ini doesn't really do the same thing as manually going through properties..
16000 16:27:12.202 Starting DxWrapper v1.0.2383.20 DDrawCompat v0.2.1 DxWnd v2.03.60
16000 16:27:12.204 Windows 10 64-bit (10.0.17763)
16000 16:27:12.204 Intel(R) UHD Graphics 620
16000 16:27:12.204 Game.exe (PID:18168)
16000 16:27:12.204 Reading config file: dxwrapper.ini
16000 16:27:12.204 Enabling d3d8to9 wrapper
16000 16:27:12.204 Loaded library: kernel32.dll
16000 16:27:12.204 Hooking 'GetModuleFileName' API...
16000 16:27:12.204 Disabling High DPI Scaling...
16000 16:27:12.205 Set exception handler
16000 16:27:12.205 Finished setting exception handler
16000 16:27:12.209 Hooking d3d8.dll APIs...
16000 16:27:12.213 Loaded library: d3d9.dll
16000 16:27:12.227 Enabling D3d8to9 function (220)
16000 16:27:12.988 Enabling D3d8to9 function (220)

This is the compatibility settings I use to make it work. I was hoping that I could use dxwrapper so I don't have to manually set the compatibility setting. Specially when redistributing.

Yeah, I saw this on another game also (don't remember which one though).  I will look into this when I get a chance.  Thanks!

@majimboo, I recently put a fix in that may address this.  Can you try with the attached version?
Download it here: dxwrapper.zip

Closing this issue.  It should be fixed with the latest release.


Update the getting started page for Remix Run to match the Blues template

Subject
Update the getting started page for Remix Run to match the Blues template
Description
I'm working on a Remix app and found conflicting information about how to get started with ChakraUI, especially regarding the entry.server.ts file:
The Chakra exemple from the Remix repo is bare-bone and doesn't contain the code related to the emotion cache. I'd like to submit a PR to this repo, that implement the best practices that you could recommand.
The Chkara getting started page is quite complete, but I wasn't able to fully implement it in a project using the Blues Stack (or Grunge or Indie stacks...) template. I got stuck will updating the app/entry.server.ts file, especially in the renderToPipeableStream call.
Please let me know how I can help :)

Having a very similar experience, I was unable to set up a remix project with Chakra without hydration issues and warnings.

@pitkes22 did you ended up building a complete integration? If you did, would you mind opening a PR to update the guide, so other people don't run into the same issue?

@nikolovlazar Sorry but sadly no, I tried many things, many different starters that I found, and many different tutorials on how to integrate chakra/emotion with Remix but nothing worked. The only thing that worked without issues was an older version of remix, and chakra that used react 17.


Supporting IoT hubs with private endpoint

Expected Behavior
ADU can connect to IoT hub, which has no public access but active private endpoint.
Current Behavior
Disabling Public Network Access will prevent you from using Device Update for IoT Hub.
Question
What is the timeline for ADU to start supporting IoT hubs with "public network access disabled" and instead "private endpoint access enabled"? We have integrated ADU with our production IoT platform and have been using it to keep our edge devices updated. We are now working on enabling private endpoint in our IoT platform and for that we need to make sure that all vital services (e.g., ADU) are compatible and can communicate with each other within one VNet.

I think I know what potential solution could be. We need to enable public network access only for selected IP ranges and then  add ADU's public IPs. In this case, we will make sure that ADU is the only resource that can access the IoT hub via public Internet. But then, the questions are how to find ADU's public IP ranges and also how to make sure that these IPs won't change along the way? Is there any documentation about this?

@arminghasemazar your workaround will work, I just updated the documentation with ADU public IP ranges that you can use in your IoT Hub(s):
https://learn.microsoft.com/en-us/azure/iot-hub-device-update/network-security#regional-ip-ranges
As for the original ask (PublicNetworkAccess='Disabled' support), it is on our backlog.

Thanks @darkoa-msft for your information.


[#6] Update to arquillian-container-karaf-remote 2.1.0.CR18

Just started reviewing :) :octocat: Sent from GH.

Pull request submitted to https://github.com/cgoncas/arquillian-extension-liferay/pull/10. :octocat: Sent from GH.


hotkey-hint: Fix text not middle aligned at different zoom levels.

Remove box-sizing and min-width properties which have no effect on inline positioned element. Modified class selector to add span which reflects this while reading the CSS.

Remove 2px vertical padding and line-height which combined are fighting for space??

80% zoom:
before:

after:

100% Zoom
before:

after:

@sayamsamal do you remember why the CSS removed in this PR was there?
@palashb01 @Ddharmani3 it'd be great if you can review this, trying to test some of the longer tooltips around the app; my intent is to merge this as more or less the last thing for 7.0 tomorrow morning, and so extra testing would be much appreciated.

Looks good to me! Tested in Chrome at various zoom levels, both 1-line and 2-line tooltip.s

Merging and deploying to chat.zulip.org, thanks @amanagr!

The hotkey for emoji still doesn't look vertically aligned:
CZO:
This PR:

It looks the same to me:


Support dynamic pipelines

Since GitLab 13.4, it's possible to write CI/CD pipelines which dynamically create sub-pipelines.
It would be great to have support for that.
Currently, the tool considers to be the "trigger" stance to be a malformed job and suggests to use "script" tag in it.

Just came here to ask if child/dynamic pipelines is on the road map. Definite +1 from me

Two makes a crowd, now i'm definitely intrigued 😃 I will post an idea in this thread once I get to a PC

@gilzow @synergiator Can any of you guys paste an as small as possible .gitlab-ci.yml that illustrates, what you are looking for? And perhaps a small description of how you would actually start such a triggered pipeline via CLI commands.

---
pipe-gen-job:
  script:
    - cat .gitlab-ci-tmpl.yml | envsubst > .gitlab-ci-child.yml

trigger_job:
  trigger:
    include: .gitlab-ci-child.yml

Here is what I think you guys want, but please confirm, before I start development of such a feature.

@gilzow @synergiator
https://github.com/firecow/gitlab-ci-local/pull/85
https://github.com/firecow/gitlab-ci-local/pull/84
I'm made the parser "not" fail if script is undefined and trigger is present, combine this with the file option MR, and you guys will be able to do something like this.
gitlab-ci-local --cwd tests/test-cases/trigger/
gitlab-ci-local --cwd tests/test-cases/trigger/ --file .gitlab-ci-child.yml

@gilzow @synergiator Just released 4.10.0, jobs with triggers and undefined script, no longer fails

I've tested and it seems to work for me.
I'll close this issue. Feel free to reopen if this manual approach ain't working.

Hey, finally got a chance to circle back and test. Works PERFECTLY! Thank you so much!


Linting

Add eslint to the repo & get it cleaned up

If you choose the ruleset, I'll def help out with this.

thanks! i figure we'll get Action out the door, rewrite the mutations API, and then we can lint & unit test it up!

Sounds great!


⚠ Bofrost.at has degraded performance

In 2a18448, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2096 ms

Resolved: Bofrost.at performance has improved in abdf6d0.


Use runtime.fastrand in Skiplist.randomHeight

The library currently uses the global rand (rand.globalRand), which is protected by a global mutex. When extending this implementation, Pebble replaced this with a per-skiplist rng. https://github.com/cockroachdb/pebble/pull/742 is extending this further and using runtime.fastrand to avoid a mutex around node height creation entirely. In fact, runtime.fastrand doesn't even use atomics, it uses thread-local storage to avoid all cache coherency costs (at the expense of some randomness).
This seems like a good change to make. We certainly don't need perfect randomness when picking node height and it would be nice to eliminate the one lock in this lock-free data structure.

I can't assign myself since I'm not a collaborator, but I'm planning on making this change.
@andy-kimball any chance you can add me as a collaborator for this project?


Master

[ ] I have followed (at least) the PR section of the contributing guide.

@gamiacdev Do you remember what steps you took to accidentally open this pull request? We are getting multiple similar PR, and trying to understand the cause.


Question about gradient in differential semi-gradient Sarsa

Hello,
How did you calculate and implement the gradient descent in differential semi gradient sarsa algorithm?
I am trying to understand the implementation and for some reason, I can't see how the gradient descent implemented.
Thanks

Could you be more specific, e.g., specifying the line of a file?

Chapter 10 code access_control.py, function "learn" line 157 and 158.
In the book, there is a gradient descent in the algorithm as I understood
w=w+alphadeltagradient descent q(S,A,w)    ,   something like that.

You can compute \nabla_w q(S, A, w) manually with linear function approximation and binary features. The expansion will end up with the update I did in the two lines.

Would you please give more explanation?

No. In general I only address bugs in the code. It is impossible for me to reply to everyone about all the questions.


Improve motivation in README

It would be nice to see (a bit more up-front) how csdmpy fits in-between the basic data format of a CSV (e.g. X-Y data) and the much more complex data format of GEMD geared towards handling information like sequential experimental processing data and metadata. As well as:

Why would I want to use CSD as opposed to a CSV, JPG, etc.?
Who else has used this so far and to what end? (esp. citing publications)

Btw, nice documentation and nice package!

Hi @sgbaird. Thanks for checking the csdmpy package and documentation. You are correct; the readme page could use more description. Some of your questions are addressed in our PLOS ONE publication. I will include those in the readme.
Regarding the GEMD format, do you have any specific questions? I am not familiar with this format. Correct me if I am wrong, but GEMD seems like a data workflow format. The CSDM data format is designed for serializing multi-dimensional scientific datasets with metadata.


[BUG] - App shortcuts won't work

Describe the bug
The 4 App Shortcuts (VPN on / VPN off / Auto tunnelling on / Auto tunnelling off) don't work at all
Smartphone (please complete the following information):

Device: Poco X4 GT
Android Version: 14
App Version 3.5,1

To Reproduce
Steps to reproduce the behavior:
Long tap on the app icon raises the shortcut menu, but short tapping on a Menu entry doesn't seem to change the app behaviour.
Expected behavior
Working shortcuts
Screenshots (Only if necessary)
Additional context
Add any other context about the problem here.

Hello! I just want to confirm, do you have app shortcuts enabled on the setting screen?

Hello Zane,
I didn't, because in my German localisation there is no configuration item "shortcuts", but "App-Verknüpfungen aktivieren" which I did not realized as "Shortcuts enabled".
But now I have - and it works.
My Bug report can be closed.
Thanks for your work.
Regards
Stefan
Am 7. September 2024 04:12:19 MESZ schrieb Zane Schepke @.***>:

Hello! I just want to confirm, do you have app shortcuts enabled on the setting screen?
--
Reply to this email directly or view it on GitHub:
https://github.com/zaneschepke/wgtunnel/issues/338#issuecomment-2335002449
You are receiving this because you authored the thread.
Message ID: @.>
--
Mit freundlichen Grüßen
Stefan Meister
@.
@.***

Gotcha! No worries! Is this not the proper translation? If so, would you help me understand the proper translation and then I can update this item.

I've got the same problem with the nightly builds, shortcuts are enabled in the settings but starting them says they are not available.


Add inset component with event links

Trello card
Trello-4088
Context
We want to sign post other events from the individual event pages as most people who land on an individual event page bounce without looking at other events.
Changes proposed in this pull request

Add inset component with event links

Update the event pages to have an inset text component in grey that notifies the user that there are more events available.
Guidance to review
Example page

@ethax-ross This looks good - however, there are only GIT events in the dev environment at the moment so can't see it on online Q&A/provider events! I'm presuming it is exactly the same?
@EllieNodder @gazcarr I said we would just show the events team this before it is merged - happy to do this or for one of you to

@ethax-ross @gazcarr @EllieNodder Not sure this quite works in terms of how it stacks on mobile - rather than being at the bottom of the page, it appears after How to register and before Venue information?

@gemmadallmandfe @EllieNodder @gazcarr I've updated it so the signposting stays at the bottom of the page for mobile and desktop

@EllieNodder Can we just show the events team before this is merged?

@EllieNodder Can we just show the events team before this is merged?

sure - shall I pop it on the events marketing teams chat?


updating helm to 3.11

Just been using the updated render-helm-chart version just released in https://github.com/GoogleContainerTools/kpt-functions-catalog/pull/1024 (Thanks for the super fast turnaround on this btw!)
I ran into some version issues in the traefik chart and noticed the helm version could do with an update https://github.com/traefik/traefik-helm-chart/blob/master/traefik/templates/deployment.yaml#L2 |

@jracollins Thank you for the contribution. The change looks good.
I just to ask some short questions (currently we do not catch up with dependent tool releases due to the releasing overhead and sustainability concerns).

A newer version 3.11.1 (instead o f 3.11.0) is released to patch a CVE fix , I'd suggest using that one instead.
I assume helm has some backward compatibility support for major versions, so using the old version (3.8.0) won't break helm but does a no-op for certain behaviors which are added in the newer versions (3.11.0). Is this correct?
For the traefik specific version requirement, do you mind elaborating what the issues you encountered? Just to help future customers who use older render-helm-chart versions, and to help us better evaluate the support.

Not sure how I missed the 3.11.1 - fixed.
So the actual error I ran into was the one I linked in https://github.com/traefik/traefik-helm-chart/blob/master/traefik/templates/deployment.yaml#L2 rather than anything unexpected and was:
[FAIL] "gcr.io/kpt-fn/render-helm-chart:unstable" in 300ms
  Stderr:
    "failed to evaluate function: failed to run function: failed to run generator: unable to run: 'helm template' with env=[]; \"exit status 1\": \"Error: execution error at (traefik/templates/deployment.yaml:3:8): ERROR: Helm >= 3.9.0 is required\\n\\nUse --debug flag to render out invalid YAML\\n\""
  Exit code: 1

I had a look at the changelog and not sure specifically what changes in 3.9 that the traefik chart depends on. 3.9 is quite old now (May 2022) but if adhering to semver properly, it should just be additional features rather than any breaking changes.

cc @natasha41575 (in case kustomize users run into the same issue)


Add ogp site url to documentation

I think that this should solve your og:url problem!

Ah ha!  My fault then.  Thank you @choldgraf
cc @dchudz

no problem!


Inability to Customize Instrumenta Tabs and Commands in PowerPoint for macOS

Describe the bug
After installing the Instrumenta PowerPoint add-in on macOS, I'm unable to modify Instrumenta tabs and commands within the PowerPoint ribbon and toolbar. While modifications to existing default PowerPoint tabs and commands are still possible, any attempts to customize or add Instrumenta-specific commands fail. This issue is specific to macOS, as the functionality operates without issues on Windows 11. The problem has been ongoing since October 2023, and updates to PowerPoint and Instrumenta have not resolved it.
To Reproduce
Steps to reproduce the behavior:

Install Instrumenta PowerPoint add-in on a macOS system.
Open PowerPoint and try to modify or add to the Instrumenta tab or commands.
Attempt to customize default PowerPoint tabs and commands for comparison.
Notice that while default PowerPoint tabs and commands can be modified, any changes to Instrumenta tabs and commands cannot be made.

Expected behavior
Users are expected to be able to customize both default PowerPoint and Instrumenta-specific tabs and commands on macOS, similar to the functionality on Windows. This includes adding new commands, modifying existing ones, and creating customizations without restrictions.
Desktop (please complete the following information):

OS: macOS Sonoma 14.4
Browser: Safari
PowerPoint Version: Version 16.83 (24031120)
Instrumenta Version: Instrumenta 1.30

Additional context
This limitation on customizing the Instrumenta ribbon and toolbar in PowerPoint for Mac has persisted since October 2023, despite updates to both PowerPoint and Instrumenta. The ability to modify default PowerPoint commands and tabs remains unaffected. This specific issue with Instrumenta customizations contrasts with its fully functional capability on Windows, impacting the usability and customization potential of Instrumenta on macOS.

Hi @mueezkq, I am afraid this is a limitation of PowerPoint for Mac that does not allow you to customize custom ribbons like Instrumenta. The only thing you can do is switch from "Pro-mode" to "Review mode" in Instrumenta settings or you can include Instrumenta commands in the Quick Access Bar.


Environment Variables

@bekihm Was there a reason why you used the environment variables via injection instead of the environment import?
With the second way, there is no need to set the variables via the constructor. I tested this and the variable substitution still works.

@volkflo I think it was just a matter of taste. The angular tutorials suggested injection as mechanism to share information between components.

Thanks for the information :)
The current documentation does not use Injection anymore. So I may restructure this :)
https://angular.io/guide/build#using-environment-specific-variables-in-your-app

@volkflo Ok :-) You may also keep the main branch free from fixup commits by squashing ;-)

Oh crap! You are right about this. I just pressed the merge button this morning and did not remember that I had pushed fixups :/

Just a hint :-)


ScriptLoad, ScriptExists and ScriptFlush for ClusterClient

Changes:
ScriptLoad loads script to all shards of the cluster.
ScriptFlush removes scripts from all shards of the cluster.
ScriptExists checks all shards of the cluster and returns false if any of the shards returned false.
Closes #1725

@skryukov this looks good, but please fix the race (see the build failure).

Thanks :+1:

Changes:
ScriptLoad loads script to all shards of the cluster.
ScriptFlush removes scripts from all shards of the cluster.
ScriptExists checks all shards of the cluster and returns false if any of the shards returned false.
Closes #1725

Thanks a lot for the quick implementation. @skryukov


Fix inconsistencies in mediator-coordination types

Quick fixes in protocol name and message types to make this protocol more consistent with other protocols and itself (consistent use of kebab-case vs. snake_case).

Given that this is still in proposed state, I personally didn't see a problem with making these corrections. If there are enough implementations of this in the wild that it disrupts interop, I agree that that should be taken into consideration. I admit, I didn't think that likely given the proposed status and did not account for it in my proposed changes. I do, however, think these changes are important for the quality of the protocol and recommend we do take the necessary steps to incorporate these corrections, whether that be with a version bump and associated coordination or not.
I think a style guide RFC is a good idea but disagree with the idea that this PR must sit open until a style guide RFC is proposed and accepted. These changes do not need to be tied to repo wide changes and if a style guide RFC is proposed and changes are needed for other protocols, the updates will have to occur one by one with coordination and version incrementing so I don't see a need to treat this differently.

I'll add that these changes were more seeking to be consistent with the protocol itself than with other protocols and I don't consider these changes to be a statement about how other protocols should do things besides being internally consistent.

I don't see this as a global issue, but specific to this RFc and am happy to accept the changes.  If we want to make a larger change across the set of RFCs, that would need a lot more discussion, documentation and planning.

@swcurran @dbluhm I forgot this was in PROPOSED state.
Not to nitpick too much, but one of this PR's stated goals is to "make this protocol more consistent with other protocols", which leaves a door open for other arbitrary changes elsewhere and I urge us to be cautious there. We should agree to a style guide and stick with that.

I don't see any reason to hold up this PR for that.  It is changing nothingcase to kebob-case and improving the names of some variables on a protocol that no one has implemented.
Maybe change the PR's goal to "Improve the usability of this protocol", drop the line about "consistent with other protocols" and then we can be happy?

@swcurran

I don't see any reason to hold up this PR for that.

To be clear: 21 hours ago I dismissed my earlier review requesting changes, removing any blockers on this PR.
What I am resisting against is opening the door to arbitrary changes done willy-nilly that do not necessarily improve the protocol in any substantial way. And yes - I agree that is a separate discussion that should be proposed through an RFC.

Sorry @llorllale -- I was confused by what you meant by the action and comment.  All good.


cmake.cmakePath changes not used until VSCode restart

Brief Issue Summary
Any changes made to cmake.cmakePath are not used by cmake-tools until VSCode is restarted. (Tested on Windows 10.)
Expected:
If the cmake.cmakePath is changed, cmake-tools should use the new path for a "CMake: Build".
Apparent Behavior:
A change to cmake.cmakePath is not reflected in the behavior of cmake-tools.

Open the settings.json file (or the normal "Settings" dialog and edit cmake.cmakePath to point to an alternate valid install with cmake.exe.
Press the "Build" button or use "CMake: Build".
In the output window, notice that the command executed was for the original cmake.exe path .
Examining the cmake.tasksBuildCommand variable will show that the original cmake.exe path is still in use.

Platform and Versions

Operating System: Windows 10
CMake Version: 3.20.3
VSCode Version: 1.57.0 (system setup)
CMake Tools Extension Version: v1.7.3
Compiler/Toolchain: GCC 10.2.1 arm-none-eabi

Other Notes/Information
An interesting note here is that if an invalid cmake.exe name and path is entered, and the "CMake: Build" command is run, an error will pop up. However, if the name and path is corrected back to the alternate cmake.exe install path and the "CMake: Build" command is run, it will use the original cmake.exe install path, not the alternate one.
It appears that "CMake: Build" checks if the current cmake.cmakePath is valid, but it then uses whatever cmake.cmakePath was set to when VSCode started for the actual build.

Thank you for opening this issue. We will fix this.


fix(form): fix reset for checkbox, radio, textarea, input, select and…

Closes #197
{{short description}}
Acceptance Criteria

[ ] Design Review by @Gagne87, @clastzoo
[ ] Technical Review by @hirsch88, @mladenplaninicic, @nobilo
[ ] Visual test done by @hirsch88, @nobilo, @mladenplaninicic, @Gagne87, @clastzoo
[ ] Functional test done by @hirsch88, @nobilo, @mladenplaninicic
Browser Testing by @hirsch88, @nobilo, @mladenplaninicic, @Gagne87, @clastzoo

Desktop

[ ] Chrome
[ ] Edge
[ ] Safari
[ ] Firefox

Tablet

[ ] iPad (Landscape / Portrait)

Mobile

[ ] Safari iOS
[ ] Chrome Preview

Can be tested with the contact form


MNU, when inspecting an object that has it's own issue with printString ...

... I think in JfD, errors are caught while generating the printString for inspected objects...

Could you provide a little more detail on what kind of errors you're seeing?  Here is what JfP tries to do for objects with problematic printString's:

It doesn't look like there are problems, so closing, reopen with more details if we're missing something.


JSON Preprocess function for things like nested props

Still need to write up tests/docs, but wanted to make sure the placement and name of this function works for you. I was able to get my nested props function working just fine with this.
      jsonPreProcess: function (json) {
        let resolveNestedProps = function (props, parent = "") {
          let flatProps = {};
          _.forEach(props, (value, key) => {
            if (typeof value !== 'string') {
              let propName = (parent === "" ? "" : parent + "_") + key
              flatProps = Object.assign(flatProps, resolveNestedProps(value, propName))
              flatProps[propName] = value
            }
          })
          return flatProps;
        }
        json.props = resolveNestedProps(json.props);
        return json;
      }

Might consider dropping this into a small NPM module if others would like to easily use it.

This is brilliant, thanks a lot!! I just had one comment and we're good to go

Forgot that this closes issues #71


signal-cli: 0.12.2 -> 0.12.7

Description of changes

changes: https://github.com/AsamK/signal-cli/compare/v0.12.2...v0.12.7

fixes e.g. https://github.com/AsamK/signal-cli/issues/1399, also an issue for package scli

cc: @ivan

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

@ofborg build signal-cli

Is this ready?  Upstream is now at 0.12.8.

@raiford i've updated to .8 now, but i never managed to successfully use this library before, so perhaps someone who knows how to use this would be in a better position to test it than me

Hey,  I think there might have been a mistake with your last push, it is still showing 0.12.7.
I did some manual tests and it looks like 0.12.7 is currently too old but I did manually test 0.12.8 and it works.

@raiford thanks! i updated the PR now.

@KiaraGrouwstra Awesome thanks!  I just tested it via nixpkgs-review and it works for me
[nix-shell:~/.cache/nixpkgs-review/pr-275071-1]$ signal-cli --version
signal-cli 0.12.8

[nix-shell:~/.cache/nixpkgs-review/pr-275071-1]$ signal-cli listAccounts
Number: +XXXXXXXXXX

@raiford thanks! lemme also tag maintainer @ivan then.

@ofborg build signal-cli


Not possible to use "required" validation with radio buttons in Chrome

For such ratio button(s):

                <input type="radio" name="category" value="category1" id="point-category-category1" required />
                Category 1

I am getting in the Chrome the following error:
An invalid form control with name='category' is not focusable.

The reason is probably because Materialize hides the radio buttons away from the page and replace it with custom rendering.

Can you post more code or a demo? I'm not sure where exactly youre getting the error.

Here it is:
http://jsfiddle.net/pzxj2sy5/1/
Open in Chrome and click on "submit" button. You will get in the web console:

An invalid form control with name='category' is not focusable.

I'm having the same issue.

My workaround for now is adding the follow after the contact has been rendered.
$('input').css('visibility', 'visible');

But isn't the real radio inputs pushed outside of the visible page? And only labels are then left in their place? So focus to required radio button then would not really work correctly?

So focus to required radio button then would not really work correctly?

You're right but at the very least, people won't be able to submit the form without completing it. I'm not satisfied with the solution either :(

+1 Having this problem too.
How do you display a message to the user when required radio inputs are not filled?

Sorry for the up, but I still have the same issue in 0.97.6... No error message on radio in Chrome or Blink-browsers :/

+1 on this. Chrome doesn't work. Firefox displays the required message, but its no where near the radio buttons.

I still have this problem. Any suggestions?

Hi guys.
I have the same issue, my solution is this(I hope it's not too late):

Add 'name' attribute for everyone elements within 'div' with class 'input-field' .
Add class 'validate' to the first radio-button within the 'div' with class 'input-field', it's not necessary for all elements.
Use the javascript file.

https://jsbin.com/jeyaset/edit?html,js,output

how to solve same issue in input box with collapsible

checkout this, let me know if this is the function that you want
https://jsbin.com/sojozoj/edit?html,js,output

Same problem here guys. Required radio buttons don't show the required message. The page just scrolls up to them.

Hi, try with this
https://gist.github.com/LGracia/f6243383b12d1636395b0ba52ee3c016

Fixed in 57423d86

Hi guys, any idea how to solve the same problem for  also. I am running into exactly the same error message.

@shehjart  if you use bootstrap accordion  or jquery ui accordion and the input is in a closed pane of the accordion, you might  get this error.


Alert boxes (Book Web)

See Req. 4.2 and See Req. 7.2

Closing this because we scrapped this feature due to time-limit.