The RTM client silently disconnects after a few hours

Issue Type

[x] Bug
[ ] Enhancement / Feature request
[x] Question
[ ] Documentation

Description
The RTM client will silently disconnect after a few hours. There does not seem to be any callback being triggered or easy ways to check the status of the websocket from the RTM api.
I have produced PR https://github.com/slackapi/java-slack-sdk/pull/459 to support ping/pong messages and events, and was hoping that pinging every 30 seconds would help but it did not. At the end, I can see a ping never being answered back.
It could be that the solution is to timeout on a ping event and force a reconnect when the pong response is not heard back within a reasonable amount of time (ex. 15 seconds?)
Is there another way to test if the websocket is still active with the RTM client? or a way to obtain a callback when the websocket connection drops?
Requirements (place an x in each of the [ ])

[x] I've read and understood the Contributing guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.
[x] I've searched for any related issues and avoided creating a duplicate issue.

It seems we need to implement this logic in RTMClient#connect() method.

I'll try it out and report, but I am suspicious. The websocket link Slack provides is only valid for 30 seconds:

The Websocket URLs provided by rtm.connect are single-use and are only valid for 30 seconds, so make sure to connect quickly.

So I would think that letting Tyrus automatically reconnect to the same URL would fail. I'll try it and report back my findings. Otherwise, we can at least trigger an event and let the application manually call reconnect on the RTMClient

So that was interesting.
06:15:49.317 [Grizzly(2)] WARN  com.slack.api.rtm.RTMClient - ### Reconnecting... (reconnect count: 3)
06:15:50.389 [Grizzly(2)] DEBUG com.slack.api.rtm.RTMClient - session opened: f5f1af89-83dd-4665-9ba3-eb1dcbdd2e19
06:15:50.389 [Grizzly(2)] DEBUG com.slack.api.rtm.RTMClient - message: {"type":"error","error":{"msg":"Socket URL has expired","code":1,"source":"gs-iad-1b6o"}}
06:15:50.389 [Grizzly(2)] DEBUG com.slack.api.rtm.RTMEventsDispatcherImpl - No event handler registered for type: error
06:15:55.385 [Grizzly(2)] DEBUG com.slack.api.rtm.RTMClient - session closed: f5f1af89-83dd-4665-9ba3-eb1dcbdd2e19, reason: Closed abnormally.

It tried three time (I had that configured) and each time failed because of Socket URL has expired as I expected. However, it ended up triggering the session closed and my app picked that up and was able to reconnect (I had reconnect logic outside of the websocket, but was not getting this session closed event before.
So, I would say partial success. A quick fix would be to implement this with no retry so it immediately fails and the app has a chance to reconnect. A better fix would be to handle this within the RTM client, such that the RMT client calls reconnect to fetch a new URL from slack and performs the reconnection under the hood.
Would you be comfortable with me sending a pull request for the quick fix first and later when you (or I) have time we can look at the better solution? At least for now we would be able to tell people that the work around is to monitor session closed and to reconnect if desired.

I'm still not sure about what your "quick fix" is yet but I'd love to know what it is. Could you make a WIP pull request?
When it comes to consistency among 1st party Slack API SDKs, node-slack-sdk and python-slackclient have the concept - autoReconnect: boolean while this library doesn't. I'm keen to have the option and make it the default behavior as with those SDKs.

I'll still investigating. I tried a few things - the last "disconnect" I had looked like this:
07:43:14.618 [Grizzly(1)] DEBUG com.slack.api.rtm.RTMClient - message: {"type":"pong","time":{"seconds":1590219794,"nanos":599871000},"reply_to":998}
07:43:44.619 [Grizzly(2)] DEBUG com.slack.api.rtm.RTMClient - message: {"type":"pong","time":{"seconds":1590219824,"nanos":600550000},"reply_to":999}
07:43:56.938 [Grizzly(1)] DEBUG com.slack.api.rtm.RTMClient - message: {"type": "goodbye", "source": "gateway_server"}
07:43:56.938 [Grizzly(1)] DEBUG com.slack.api.rtm.RTMEventsDispatcherImpl - No event handler registered for type: goodbye
07:44:14.620 [Grizzly(2)] DEBUG com.slack.api.rtm.RTMClient - message: {"type":"pong","time":{"seconds":1590219854,"nanos":601300000},"reply_to":1000}

So it looks like we have to handle that one as well (https://api.slack.com/events/goodbye)

Thanks for sharing this! Indeed, this library doesn't provide an automatic-reconnect feature when receiving goodbye events yet. As GoodbyeHandler interface already exists, all we need to do is implement GoodbyeHandler which acquires a new WebSocket endpoint and reconnects to the server-side + enable it as a built-in one.

Hi again,
So good news is that my bot has been able to survive the 8h disconnect from Slack by handling the goodbye event. However I am not sure how this should be handled by the java sdk.
My existential concern is the following: I see two ways of handling the loss of the websocket:

Handled internally by the Slack SDK - this is the most convenient approach for anyone who's expecting the sdk to just "work". However, getting it right requires a bit of refactoring for the case when Slack is not available.  As it is now, I can attempt a reconnect when we lose the websocket or when Slack says goodbye, but what if the reconnect fails (ex. Slack is down)?  Then we'd need a thread that retries periodically, but also we would probably to inform the app that we are offline, and then notify when we are back online.

Let the app handle this - in the main loop, check when we get disconnected and attempt to reconnect. If re-connection fails, the main loop can just sleep 30 seconds and retry, and retry and retry until Slack is back online.

It would be possible to do something in-between by providing a reconnect policy - some kind of "restart recipe" that does the logic of #2 but is readily available so that whoever is creating a new bot using RTM does not have to worry about implementing it themselves.
I'll try to present such policy object in a PR so you can tell me what you think.

Thanks for sharing your well-considered resolution for this.
For the cases that the auto-reconnect logic should consider are:

:one: rtm.connect/rtm.start failures due to Slack outage
:two: rtm.connect/rtm.start failures due to rate_limited errors (rtm.* are Tier1)

Regarding :one:, as you mentioned, waiting for the recovery a bit longer than usual and showing the status in info-level logs may be helpful for some apps. We can provide the default policy suitable for 80+% use cases but if it is customizable, that'll be great.
As for :two:, the implementation should have a great consideration of Retry-After response header. I don't think we should use AsyncMethodsClient for this as it brings a bit more complexity in this case but checking the code would be helpful for learning how to handle rate_limited errors: https://github.com/slackapi/java-slack-sdk/blob/v1.0.7/slack-api-client/src/main/java/com/slack/api/methods/impl/AsyncRateLimitExecutor.java#L160-L162
Also, I think onClose is triggered right after your app receives goodbye messages from Slack. Based on the assumption, implementing this logic as RTMCloseHandler looks better as it can cover any other patterns the RTMClient needs to reconnect to Slack (e.g., disconnected without receiving a goodbye message).
https://github.com/slackapi/java-slack-sdk/blob/v1.0.7/slack-api-client/src/main/java/com/slack/api/rtm/RTMClient.java#L141-L149

Let the app handle this - in the main loop, check when we get disconnected and attempt to reconnect. If re-connection fails, the main loop can just sleep 30 seconds and retry, and retry and retry until Slack is back online.

If we can implement the above as RTMCloseHandler, I don't think we should manage another thread on our own (please correct me if I misunderstand).

Sorry for the radio silence. I tried a few things and each time it's a 8+ hour wait to validate :)
It turns out that catching GoodbyeEvent and calling disconnect on the client when it happens is sufficient to keep the bot running. The disconnect then correctly calls the close callback and the bot gets a chance to reconnect.
What I still don't understand, is why the close event does not get sent when we don't manually disconnect on Goodbye and the web socket is closed a few minutes after from the other end.
This is much less urgent now thatI have a workaround, so I guess we can close the issue and I'll come back if I have an improvement to offer.
Cheers,
Gaspard

@gaspardpetit Thanks for the response and I'm glad to hear that your app has been working well. I would like to know more details about your code with goodbye events. Does it look like this?
https://github.com/seratch/java-slack-sdk/commit/292339c87e348613843516cc762aae0ad1029fff
Also, if my implementation is valid (I haven't done any tests yet though), what do you think about having this implementation as the built-in message listener since the next version?

Hi @seratch - thanks for looking at improving this! I attempted to do something similar to what you did here. The limitation in this implementation is the case where you will end in the Failed to reconnect to Slack case. I was not sure what would happen and did not have time to fully test. Would CloseHandler be called if the reconnect fails? If so, I think your solution is good, because it means that the app is aware that the connection went away and can either shutdown and let something else restart it, or implement a reconnect loop.
Failure to reconnect will happen during Slack outages, and by handling it "internally" like you did here, you do not really get a chance to retry later, unless you spin a thread that periodically attempts to reconnect.
If you don't start a retry thread, then the app has to expect this to happen and run the rtm client in an external retry loop. But then, if it has to implement an external retry loop, do we even need the internal one?  My conclusion was that we did not. If the disconnection is correctly reported back, it isn't very difficult to wrap the bot execution in a reconnect loop.
I ended up doing it this way - it's a bit long and complicated, but it got me in a state where the bot will reconnect and I can focus on other things.

My Bot has a waitForDeath method that blocks until it is disconnected:

public interface Bot extends AutoCloseable {
	void waitForDeath(Duration ofSeconds);
}

I also defined a lifecycle for my bots that have three phases:

onPowerOn which returns a fresh new bot
onHeartbeat which gets called once per second, giving me a chance to do periodic checks, monitoring, ping, etc. heartbeat; and
close on the AutoCloseable which terminates the bot when connection is lost

public interface BotLifecycle<BOT extends Bot> {
	BOT onPowerOn() throws Exception;
	void onHeartbeat(BOT bot);
}

I use a runner policy that keeps restarting my bot

@Slf4j
public abstract class BotRunnerPolicy<BOT extends Bot>
{
	public abstract void run(BotLifecycle<BOT> botLifecycle) throws InterruptedException;

	public void keepRunning(BotLifecycle<BOT> botLifecycle, Supplier<Boolean> shouldStop) throws InterruptedException
	{
		log.info("powering on bot");
		try(BOT bot = botLifecycle.onPowerOn()) {
			while(shouldStop.get() == false) {
				bot.waitForDeath(Duration.ofSeconds(1));
				botLifecycle.onHeartbeat(bot);
			}
		}
		catch(Exception ex) {
			log.warn("while monitoring execution", ex);
		}
		finally {
			log.info("stopping bot");
		}

		// sleep a bit before restarting just so we don't end up in a tight retry loop
		if(shouldStop.get() == false) {
			log.info("hang on, we will be back shortly....");
			Thread.sleep(Duration.ofSeconds(5).toMillis());
		}
	}
}

The policy I use is to wait for the JVM to exit:
@Slf4j
public class BotRunnerUntilJVMExitsPolicy<BOT extends Bot> extends BotRunnerPolicy<BOT>
{
	@Override
	public void run(BotLifecycle<BOT> botLifecycle) throws InterruptedException {
		while(RuntimeMonitoring.shutdown() == false)  {
			keepRunning(botLifecycle, RuntimeMonitoring::shutdown);
		}
	}
}

Then in my main function, I run my policy and define how the bot should be re-created when needed:

BotRunnerPolicy<SlackBot> botRunnerPolicy = new BotRunnerUntilJVMExitsPolicy<>();
botRunnerPolicy.run(new BotLifecycle<>() {

	Instant m_lastPingTime = Instant.now();

	@Override
	public SlackBot onPowerOn() throws Exception
	{
		SlackBot bot = new SlackBot();
		// register monitoring, command handlers, etc.
		return bot;
	}

	@Override
	public void onHeartbeat(SlackBot bot)
	{
		// probably not needed by everyone, but I monitor ping/pong time
		Instant now = Instant.now();
		if (Duration.between(m_lastPingTime, now).getSeconds() > 30)
		{
			bot.ping();
			m_lastPingTime = now;
		}
	}
});

That's for the outer shell. The bot itself monitors a few things:
Signaling death of the bot so it reconnects:
private final Object m_waitForDeath = new Object();

@Override
public void waitForDeath(Duration duration) throws InterruptedException
{
	synchronized(m_waitForDeath) {
		m_waitForDeath.wait(duration.toMillis());
	}
}

public void signalDeath()
{
	synchronized(m_waitForDeath) {
		m_waitForDeath.notifyAll();
	}
}

@Override
public void close()
{
	try {
		if (m_rtm != null) {
			log.info("shutting down slack bot");
			m_rtm.disconnect();
			m_rtm = null;
		}

		if (m_slack != null) {
			log.info("shutting down slack");
			m_slack.close();
			m_slack = null;
		}
		signalDeath();
	}
	catch(Exception e) {
		log.error("While shutting down", e);
	}
}

I register a CloseHandler which closes my bot (and therefore pronounces it dead)
public SlackBot() throws Exception
{
	m_slack = new Slack();
	m_rtm = m_slack.rtmConnect(token);
	m_rtm.connect();
	m_rtm.addCloseHandler(reason -> close());
}

And I register a GoodbyeEvent handler that also kills my bot
m_dispatcher.register(new RTMEventHandler<GoodbyeEvent>() {
	@Override public void handle(GoodbyeEvent event) {
		close();
	}
});

It's a lot of small pieces, but if I summarize, the flow looks like this:
while (jvm is running) {
  connect to slack with rtm
  register handler for `GoodbyeEvent` that calls `close()`
  register `CloseHandler` that calls `close()`
  wait for close() to be called
  cleanup
}

So I gave it some thoughts, I think you're on a good track. What about this?
https://github.com/eidosmontreal/java-slack-sdk/commit/eb47f3aeb95da14a21ac99dea11cacd38ed73454

@gaspardpetit Thank you very much for sharing your knowledge! These are really helpful. To improve the connection management, I would like to implement auto-reconnect and ping/pong heartbeat (it seems tyrus-standalone-client doesn't have the option, so that we need to implement it on our end). If you have interests and time for writing the code, I'd love to work with you on it.

@seratch I will keep looking at this on the side; I can already comment that the code I linked above does not work. Failures to reconnect in the reconnect thread spawn new threads and I ended up with multiple threads trying to reconnect and being rate-limited by Slack 😓
I believe creating a daemon thread like you suggested is the right approach. I will look into this and get back to you.

Hi @gaspardpetit, can switching to Socket Mode be your option for the future? Most of the things you are doing with RTM API are possible in Socket Mode. The exceptions are receiving user_typing events and Web API calls using "classic bot" permission.
I'm pretty sure SocketModeClient should work much more stably for you. I've applied a bunch of improvements for better auto-reconnect logic in the novel implementation. It may be also possible to port the parts into RTMClient but I'm sorry to say that it's not our priority.
Hope this is helpful to you and if you don't mind, can we close this issue as "won't fix" one?

Thanks for asking. SocketMode is the way to go going forward, I have no objection closing this one.
Thanks again for your work on this library, it is very useful to me :)

Thanks for your prompt response and I'm very happy to hear that! Let me close this 🙇


Allow history tracking in composer

Adds forward / backward functionality too the composer for easier navigation. Also, the url updates whenever the composer is modified, allowing the (long) url to be copy-pasted from the address bar.
Test locally in Firefox, Chrome, and Safari.

Codecov Report

Merging #2304 into master will decrease coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2304      +/-   ##
==========================================
- Coverage    79.6%   79.57%   -0.04%
==========================================
  Files          85       85
  Lines        8847     8847
  Branches     1892     1892
==========================================
- Hits         7043     7040       -3
- Misses       1544     1547       +3
  Partials      260      260

Impacted Files
Coverage Δ

webapp/graphite/render/hashing.py
90.56% <0%> (-2.84%)
:arrow_down:

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 e15593a...f2288a6. Read the comment docs.

Looks good - thanks!
I'm not a big JS guru, though...


When to release training code?

About when to release trading code? Thank you!

About when to release trading code? Thank you!

hopefully, the training code will be released by the end of this month

@haidog-yaqub is the training code still coming soon? Wondering what the current ETA is.


Incorrect version number in Limitations section

This is a Bug Report

Problem:
Under the limitations section, it says: "In Kubernetes version 1.5"
Proposed Solution:
Correct version number
Page to Update:
https://kubernetes.io/docs/setup/best-practices/node-conformance/

Is that incorrect, or simply dated?
/kind cleanup

/priority backlog

Let's remove the Limitations section entirely unless there's evidence that it remains accurate.
/remove-lifecycle rotten
/help
/language en

/area node-e2e

BTW https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/e2e-node-tests.md#node-end-to-end-tests also documents Node end-to-end tests


dynamic voxelization vs hard voxelization

Hi Tianwei, I copied your dynamic voxelization implementation from other repo to adapt to OpenPcdet here. Stangely, I found no speed improments compared to the original hard voxelization by OpenPcdet.
I compare the iter/second, no improvements in speed.
The original hard voxelization was done in dataload stage.

The dynamic voxelization was done in model  VFE stage.

Is it because the original hard voxelization metho already a optimized one?

Hi,
The speed difference is not too large if we use it during training as we have multiple processing in the data loader which hides latency.
You can measure it at inference time+not using a dataloder (which is the real setting in deployment), it should be slightly faster.
Additionally, the speed difference will be larger for larger number of points (e.g. waymo with three sweep, it is about 400k points vs 40k in kitti)

Thanks, I will test it latter.


FR: Support for Swift Package Manager

With iOS support for Swift Package Manager  in Xcode 11 can we please get that added to this project.

Hey @w0mba7 - thanks for the report 😄
We're excited and looking into the best way we can support this as soon as we can, but there are a few dependencies and file structure changes we may need to do. We started experimenting with support on a branch at https://github.com/firebase/firebase-ios-sdk/tree/spm-master a few weeks ago and have a better idea of the approach we need.
We also started a discussion on binary framework distribution on the Swift forums but it looks like we may get some more information from a WWDC session this week titled Binary Frameworks in Swift
.
This won't be something we can do overnight but want to support it as soon as we can, there are a few bugs to work out as well (like SR-10707 that I discovered while working on adding support.

https://github.com/firebase/firebase-ios-sdk/issues/2135 linking issues.

My experiment was to take the Carthage Binaries and add this to the Targets section but complains that the module map is in the wrong place:
error: package has unsupported layout;modulemap '/Users/user/Projects/RideCore/Carthage/Build/iOS/nanopb.framework/Modules/module.modulemap' should be inside the 'include directory`
moving things around in the folders and renaming did not seem to help.
     targets: [
        .target(
            name: "Core",
            dependencies: ["stuff"],
            path: "Carthage/Build/iOS",
            linkerSettings: [
                LinkerSetting.linkedFramework("FirebaseAnalytics"),
                LinkerSetting.linkedFramework("FirebaseCore"),
                LinkerSetting.linkedFramework("FirebaseDatabase"),
                LinkerSetting.linkedFramework("FirebaseMessaging"),
                LinkerSetting.linkedFramework("GoogleUtilities"),
                LinkerSetting.linkedFramework("GoogleAppMeasurement"),
                LinkerSetting.linkedFramework("GoogleUtilities"),
                LinkerSetting.linkedFramework("GTMSessionFetcher"),
                LinkerSetting.linkedFramework("nanopb"),
                LinkerSetting.linkedFramework("Protobuf")
            ]

Related to #2135

Follow the progress at https://github.com/firebase/firebase-ios-sdk/commits/spm-master. Suggestions and PRs welcome!

Much of Firebase Unit Testing relies on OCMock which does not yet support Swift PM.  That could be a great place for someone in the community to contribute to accelerate the migration.

For Firebase to support Swift Package Manager, there will need to be several changes to both Swift Package Manager and Firebase. See https://github.com/firebase/firebase-ios-sdk/commits/spm-master for the prototype implementation which successfully built a few of the Firebase libraries with SwiftPM.  Below is a summary of some of the key requirements:
Binary library support
Some of the Firebase libraries are unlikely to ever open source. Thus for Firebase to completely move to SwiftPM, binary library support must be added, including support for depending on a source-based Package from a binary package. See the Swift forum discussion.
Resource support
Firebase ML, Firebase In App Messaging and Firebase Firestore require resource support.  There may be a workaround for Firestore, but not for the others.  See Swift bug.
Separately versioned libraries per repo
Firebase currently separately versions its libraries from a single mono-repo. This could be accomplished with SwiftPM by adding multiple package support to a repo or by adding the ability to version libraries within a package. Xcode would also need to similarly updated.
Firebase could consider abandoning separately versioning its libraries like it already does for binary and Carthage distributions. This would be especially unfortunate for managing new libraries with zero major versions of semantic versioning.
Build Settings
Some Firebase libraries rely upon being able to build some of their sources with and without ARC. There does not seem to be a way to do this. See Forum discussion and Swift build setting proposal.
Module Map Generation
Objective-C modules aren't generated for Objective-C targets. This causes us to rely on changing our import statements to use local header paths instead of framework paths. See https://bugs.swift.org/browse/SR-10707
Testing - OCMock
Most of Firebase unit testing relies upon OCMock which does not yet have Swift Package Manager support.
Subspec support
Firebase relies upon subspecs so that different library combinations can choose different subsets of the GoogleUtilities support library.  Now that static libraries/frameworks are better supported, it is probably feasible to split each GoogleUtilities subspec into a separate library.
Private Headers
Firebase uses the CocoaPods/Xcode private headers feature to share non-public APIs across libraries. It might be feasible for Firebase to abandon the use of this feature in favor of repo-relative import paths.

Thanks for your work on this!

The latest Xcode Beta 4 says under resolved issues "Swift packages that use unsafeFlags build settings can’t be used as a dependency. (50354068)" this could be a breakthrough in getting prebuilt binaries to work. It may allow "-F" to be passed as well as "no-objc-arc". Haven't tried it yet but thought I would let you know.

Trying install via SPM, get error

$(SRCROOT) in Package.swift

@ivanvorobei thanks for testing! Which version of Xcode are you using?

@ryanwilson I am use last beta of 11 Xcode.

Trying install spm-master branch via SPM, get this error:

$(SRCROOT) in Package.swift

I got the same error using Xcode Version 11.0 beta 5 (11M382q) when trying to add the package to my project. After a quick look at the documentation, it seems the path has to be relative to the project directory:
/// - Parameters:
    ///   - path: The path of the directory that contains the  headers. The path is relative to the target's directory.
    ///   - condition: A condition that restricts the application of the build setting.
    public static func headerSearchPath(_ path: String, _ condition: PackageDescription.BuildSettingCondition? = nil) -> PackageDescription.CSetting

@ivanvorobei @julienbodet Thanks for the reports!  Something has changed between Xcode 11 beta 2 and beta 5 that leads to this issue.
I've asked a question about it on the SwiftPM forum.

FYI, a forum discussion today about adding the -fno-objc-arc option to library builds. Firebase needs this in libraries that depend on Protobuf.

Any update on this?

We'll do a full reassessment with the latest Xcode 11 in the next week or two, but it doesn't seem there has been much progress on most of the open issues.

Any update on this?

There's essentially no change from the July 9th comment above.  There have been some proposals and discussions about some of the necessary features in the Swift Package Manager Forums, but not much tangible progress yet.

Any chance to use firebase through SPM now?

still no update? its been so long

While it's great to see everyone so excited to adopt Swift Package Manager in their projects, there's currently nothing the Firebase team can do to support it. Once SPM supports binary frameworks I'm sure they'll give us an update, but until then all the comments asking for updates aren't particularly useful.

It's difficult if you don't use CocoaPods... I have a legacy Objective-C project that I'm trying to integrate Firebase into. It doesn't use CocoaPods because there were so many issues. I just spent an hour manually integrating Firebase and Crashlytics and get this error:
*** Terminating app due to uncaught exception 'FIRAnalyticsVersionMismatch', reason: 'Google Analytics for Firebase version (60105000) does not match with Google App Measurement (60103000) version. Please update.'
I have the latest firebase manual download and the latest Crashlytics manual download. So with manual, it won't work; Swift Package Manager isn't happening; and there is no Carthage support. So basically, unless you use CocoaPods, you are out of luck. Discouraging.

@inPhilly It looks like you have a FirebaseAnalytics.framework and GoogleAppMeasurement.framework from two different distributions.
Firebase does have an experimental Carthage distribution. See https://github.com/firebase/firebase-ios-sdk/blob/master/Carthage.md

Until SE-0272 is integrated, there's nothing Firebase can do here... I'm eagerly awaiting for SPM support as a consumer as well, but they literally can't do anything when SPM is missing a feature that Firebase depends on.
Be reasonable, people.

Why don't they use linked binary frameworks?
See https://forums.swift.org/t/binary-frameworks-with-swiftpm/26225/2

@tychop Missing support for binary dependencies is just one of several missing Swift Package Manager features necessary to support Firebase. See above.

Any one suugest to me ,I want the Firebase initialise without Google-Service.plist?

@amit6061 I'm not sure this is the great place to ask this kind of questions.
Please stop spamming this issue, I'm pretty sure Firebase engineers will updated us once SPM will be more compliant with Firebase.

I have send the notification from Firebase Cloud Messaging Panel .
I am getting the error ,Please help me
objc[600]: Class FIRMessagingPersistentSyncMessage is implemented in both /private/var/containers/Bundle/Application/E28A6E76-BC27-4207-AD6C-03C7D95ADBA6/iZootoTesting.app/Frameworks/iZooto_release.framework/iZooto_release (0x1013a0920) and /var/containers/Bundle/Application/E28A6E76-BC27-4207-AD6C-03C7D95ADBA6/iZootoTesting.app/iZootoTesting (0x100968950). One of the two will be used. Which one is undefined.

@amit6061 Please make a separate issue. Your issues aren’t relevant to the actual SPM thread and I can imagine others aren’t too happy getting notifications over this...

ok
On Wed, Dec 4, 2019 at 2:05 PM Umar Haroon<EMAIL_ADDRESS>wrote:

@amit6061 https://github.com/amit6061 Please make a separate issue.
Your issues aren’t relevant to the actual SPM thread and I can imagine
others aren’t too happy getting notifications over this...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/firebase/firebase-ios-sdk/issues/3136?email_source=notifications&email_token=ANSGFZX77RS6OZ65DRGMIBLQW5TULA5CNFSM4HS7ALKKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEF4FJYY#issuecomment-561534179,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANSGFZURJBTAK7M7X7I4ETTQW5TULANCNFSM4HS7ALKA
.

--
Thanks and Regards,
Amit Kumar Gupta
Android/iOS Developer
3rd Floor, A-35,
Sector 2- Noida 201301
Contact:<PHONE_NUMBER>
www.izooto.com

I'm just now revisiting this and would really like to use Firebase Crashlytics, but I read on another thread that you will not ultimately be supporting Carthage because of Swift Package Manager; especially with there being so many problems with Swift Package Manager, and because Carthage is another choice that is not going away anytime soon, I fail to see why you would not want to pursue officially supporting Carthage. Because I cannot use CocoaPods, and can't keep up with manually integrating and updating Firebase, I for one am forced to look elsewhere, when I would really like to use Firebase in my apps.

@inPhilly If it helps, I would expect us to continue Carthage experimental support at least until Swift Package Manager is available.

My experiment was to take the Carthage Binaries and add this to the Targets section but complains that the module map is in the wrong place:
error: package has unsupported layout;modulemap '/Users/user/Projects/RideCore/Carthage/Build/iOS/nanopb.framework/Modules/module.modulemap' should be inside the 'include' directory
moving things around in the folders and renaming did not seem to help.
     targets: [
        .target(
            name: "Core",
            dependencies: ["stuff"],
            path: "Carthage/Build/iOS",
            linkerSettings: [
                LinkerSetting.linkedFramework("FirebaseAnalytics"),
                LinkerSetting.linkedFramework("FirebaseCore"),
                LinkerSetting.linkedFramework("FirebaseDatabase"),
                LinkerSetting.linkedFramework("FirebaseMessaging"),
                LinkerSetting.linkedFramework("GoogleUtilities"),
                LinkerSetting.linkedFramework("leveldb-library"),
                LinkerSetting.linkedFramework("GoogleAppMeasurement"),
                LinkerSetting.linkedFramework("GTMSessionFetcher"),
                LinkerSetting.linkedFramework("nanopb"),
                LinkerSetting.linkedFramework("Protobuf")
            ]

Did you ever figure out how to get it working? I'm also looking into a similar approach but ran into the exact same issue.

A quick update for anyone still watching this thread: proposal SE-0272 has been accepted by the Swift Evolution team. This proposal involves adding support for binary dependencies to the Swift Package Manager and, once implemented, will mean that the Firebase SDK can hopefully be distributed as a Swift package.

xcode 11.3

@mkalayci35 Firebase isn't available via Swift Package Manager yet, that's what we're discussing in this issue.

Same error here,   no firebase sdk in package manager  yet!

 I'm deleting. Please keep subsequent comments along the lines of https://github.com/firebase/firebase-ios-sdk/issues/3136#issuecomment-560365440.
Others, the appropriate way to indicate your desire for this feature is to thumbs-up the issue and/or work on contributions to Swift Package Manage and this repo to address the know issues discussed above.

Unless Apple will release Xcode 11.5 before WWDC, I don't see this happening before Xcode 12 is released together with all new OS's. The required features mentioned upthread won't be part of Swift 5.2 and therefore of Xcode 11.4.

The Swift 5.3 Release Process was just posted, stating that the branch for SwiftPM will be cut tomorrow. We'll use that once it's cut to test and try to get support working before the next Xcode release (presumably WWDC timeline, but nothing was confirmed in this post for release timeline). Once we have something functional I'll update here and folks can test, hopefully we can get a lot of testers in before the release so we can get cherry-picks for any fixes needed.

I am putting Firebase, Crashlytics and app distribution on hold until this is resolved. Pods are a no go.

Build Settings
Some Firebase libraries rely upon being able to build some of their sources with and without Automatic Reference Counting (ARC). There does not seem to be a way to do this. See Forum discussion and Swift build setting proposal.

One way to make GoogleUtilities/ISASwizzler compile under Swift PM is to implement methods that uses Manual Memory Management (non ARC) in C, and then at runtime those methods get registered/attached using functions like class_addMethod from the Objective-C Runtime.
Almost all methods inside GoogleUtilities/ISASwizzler seem to rely on C functions from the Objective-C Runtime.

Build Settings
Some Firebase libraries rely upon being able to build some of their sources with and without Automatic Reference Counting (ARC). There does not seem to be a way to do this. See Forum discussion and Swift build setting proposal.

One way to make GoogleUtilities/ISASwizzler compile under Swift PM is to implement methods that uses Manual Memory Management (non ARC) in C, and then at runtime those methods get registered/attached using functions like class_addMethod from the Objective-C Runtime. So it would be possible to get GoogleUtilities running under Swift Package Manager.
Almost all methods inside GoogleUtilities/ISASwizzler seem to rely on C functions from the Objective-C Runtime.

Overwriting Crashlytics/Fabric to Firebase. Same error here

@fabriciomasiero I believe you commented on the wrong issue - please re-open a new issue or comment on the original one you intended to as I've marked the comment as off-topic. No need to respond to this message.
@juanjoseluisgarcia we're eagerly awaiting the release of binary framework support for SwiftPM as well, but in the meantime we do offer Carthage and Zip distribution for those that don't want to integrate with CocoaPods.

Hi @ryanwilson — is Xcode 11.5 GM (11E608c), holding Swift version 5.2.4, the right thing? I'm afraid not, as you mentioned Swift 5.3, which seems to be hold for WWDC I'm afraid :(

Swift 5.3, which seems to be hold for WWDC I'm afraid
@stuffmc that's expected.

It seems that adding firebase with the Swift Package Manager is still not working.
I am using 11.5 Xcode (11E608c) on macOS catalina 10.15.5
I entered this url into the web address box.
https://github.com/firebase/firebase-ios-sdk
The default option is to use by Version up to Next Major 6.26.0
I get this error.
Package Resolution Failed
firebase-ios-sdk could not be resolved:
Fetching https://github.com/firebase/firebase-ios-sdk
https://github.com/firebase/firebase-ios-sdk has no Package.swift manifest for version 6.26.0
Activity Log Complete
1 Error.

@sk92129 you'll have to be a bit more patient. It will only work with Swift 5.3, whenever it's released. We all guess Xcode 12 at WWDC on June 22nd. Until now, Xcode 11.5 has Swift 5.2.4, which doesn't support binary frameworks yet.

@sk92129 you'll have to be a bit more patient. It will only work with Swift 5.3, whenever it's released. We all guess Xcode 12 at WWDC on June 22nd. Until now, Xcode 11.5 has Swift 5.2.4, which doesn't support binary frameworks yet.

I think the ones that should have been more patient is Google. Fabric worked like a charm. Now I moved on to TestFlight and I have no time to start testing things that are not finished. This should have been released yet. Period. They lost me as a user for both Fabric and Firebase.

Can somebody please lock this thread to stop in the influx of unhelpful and unrelated comments? This issue is of importance to me, but only actionable information would be appreciated at this point.

Sorry about the noise, but since this is an open issue and both the Firebase SDK and Swift Package are open source projects, I'd prefer to keep the channel open for constructive conversation with the community.
If anybody is repeatedly abusive or off-topic, they will be reported and/or blocked.
As mentioned above, we expect to be able to move forward with Swift Package Manager support when Apple releases the binary framework support integrated in Xcode.

We've made some progress in the last week and currently have the FirebaseStorage quickstart running with FirebaseAuth, FirebaseStorage, and FirebaseStorageSwift integrated via the Swift Package Manager. To try it out, follow along or contribute, see #5706 and https://github.com/firebase/firebase-ios-sdk/tree/spm-master2020.

I think WWDC20 has changed the situation, right?
https://developer.apple.com/videos/play/wwdc2020/10147/
https://developer.apple.com/documentation/swift_packages

As per beta's changelog, Xcode 12 will bring support for resources using SPM

Thanks for the comments folks - you're right: we got a lot of things we've been waiting for! We're working on getting this up and running and working out some issues like binary targets having dependencies on other targets. We'll update this thread as we make progress and when it's ready for further testing.
Thanks for your patience with us on this!

Hey everyone,
As promised, I have an update on progress. In order to make it easier to track, we created a GitHub Project with "To do", "In Progress", and "Done" columns that show the current status.
New challenges we've seen include supporting different platforms for different libraries (i.e. DynamicLinks only supports iOS, but others support macOS and tvOS as well), and a limitation where we have to run all unit tests for the package on CI instead of just running a subset (useful for only running Auth tests when Auth changes, etc. Forum post). We'll be filing some Feedback, using work-arounds if we can, and will look at making contributions where possible as well to support these use-cases.
For those that are eager to try it out, the following SDKs are available already when using Xcode 12: Auth, Core, Crashlytics, Functions, Installations, and Storage (with StorageSwift). I don't recommend mixing CocoaPods and SwiftPM but if you need only that subset of products, please give it a go and let us know (in a separate issue) if you run into problems for those specific libraries. You'll have to use the master branch at the moment but should be able to use the CocoaPods-6.28.0 tag in the next couple of days.
Thanks, and once again we appreciate the patience as we work through this!

Sounds cool! Would it be possible for you to start implementing Firestore first? I think many (at least me) use the Auth-Firestore-Storage combo in many projects and are waiting for this product to start testing. Thanks so much!

@ryanwilson Can the platform differences be resolved using the #if canImport(ModuleName) directive? Seems like what packages like SwiftLint is doing. I'm not sure if it's the same issues though.

@lorenzofiamingo We'll see what we can do, but Firestore will likely be one of the last libraries to support Swift Package Manager because of its complicated dependency structure.
@dvanwinkle @ryanwilson is more on top of this than me - but I believe #if canImport(ModuleName) or other #if options would work in the sources, but we'd ideally like to specify different platforms for certain .librarys in the Package.swift.
In other news, we're making progress on enabling unit testing in https://github.com/erikdoe/ocmock/pull/442

Maybe this can help:
https://github.com/apple/swift-evolution/blob/master/proposals/0273-swiftpm-conditional-target-dependencies.md

I look forward you to migrate the pods Firebase/Crashlytics and Firebase/Analytics to SwiftPM 🙂

@dvanwinkle thanks for the suggestion! That can definitely be helpful and we'll need to end up using it, but wasn't what we had originally hoped was possible. To keep it short, the ideal situation would be a library that is only visible to a subset of platforms specific in the Package.swift manifest (currently the Package itself defines platform support). That's not possible, so we'll need to now include all the sources for every platform and make sure SDKs that only support some platforms (such as DynamicLinks not being able to support tvOS since there's no browser on tvOS) can compile on that platform, or exclude the source entirely.
The new plan is to mark all those APIs with @available only marking the correct platform availability and ensuring that it can compile otherwise. An alternative would be to wrap each file in a #if TARGET_OS_<PLATFORM> check, but that's a big more involved and leaves to sources to be compiled at all which could cause some confusion. We'll see how this plan goes 😄.
@lorenzofiamingo thanks for that link as well, we may have been able to make something work with that but it still has the problem of the original target being available only for certain platforms, which as far as I can tell would mean it needs to be in a different Package manifest.
@TofPlay Crashlytics is ready but keep an eye out on the tracker for Analytics - there are likely a few other things to try to get done before Analytics but we're working through the list.

I've seen a couple of URLs to try out SPM.  @ryanwilson, do you have a recommended target to use with SPM for now?

@stevekellogg We don't yet recommend using SPM with Firebase for production development.
However, if you'd like to try out early versions, we'd love to get your feedback.
The spm-master2020 branch is stable with support for Storage and Auth.
The master branch is more complete. See the products in https://github.com/firebase/firebase-ios-sdk/blob/master/Package.swift for details. The Package.swift in the master branch requires Xcode 12. We're actively working there and there may be stability fluctuations.
Please open separate issues with any feedback.

Perfect, thanks @paulb777.  Yes, understood that this is not for production.  I'm just looking to try it out on a new project that won't hit production till January at the earliest.

Am I right in thinking that RemoteConfig isn't yet supported by the SPM package? It is mentioned in the Package.swift, however just importing Firebase doesn't expose it.

Hi,
I have attempted to add the sdk through SPM. I am using XCode 12 beta, branch master. But when I attempt to add the package it says "has no Package.swift manigest for version 6.26.0...

Hi,
I have attempted to add the sdk through SPM. I am using XCode 12 beta, branch master. But when I attempt to add the package it says "has no Package.swift manigest for version 6.26.0...

Instead of selecting a specific version, please just choose the master branch by just selecting the second radio button in the first screenshot you posted.

Thank you.

@ttimpe Good catch! Thanks for pointing out the oversight in the Package.swift.  Fixed in #6105

@mdanazhiev As @ttimpe pointed out, the master branch should be specified.
We're intentionally not supporting version installation yet to make it clear that Firebase SPM support is still a work in progress, only intended for evaluation and feedback, and not recommended for inclusion in production apps.

I was just testing, my bad not checking with selecting branch not version.

Is there any timeframe for the other missing packages to be included in the SPM release like Analytics? Ideally, SPM support should be stable by September with the upcoming release of iOS 14. A lot of other developers are, like myself, also getting rid of CocoaPods wherever they can as it can mess up lots of stuff.

I fetched repository.
Well, it would be nice to have an installation instruction. You have a lot of libraries and I don't know which library I should link to my app target if I want, for example, use only Crashlytics.
Also, you have to put a lot of #if / #canImport statements to target iOS 13 and Combine. Promises and GTMFetcherSession are unnecessary. Please, don't add these dependencies.

@lolgear Firebase SPM support is still a work in progress, so documentation is not a priority now.
Anyway, when you add the package, XCode gives you the possibility to choose the package products of the repo. You should simply select the one you want.
If they've added Promises and GTMFetcherSession probably they are using them in the package product you've selected.

Ok, so this is more of an SPM question than a Firebase question, but wondering if someone here knows.  I'm using the new SwiftUI "multiplatform" template, and I'm trying to use SPM to include Firebase (for testing and evaluation).  When I try to attach the Firebase package, XCode doesn't seem to allow me to attach it to BOTH the iOS and macOS projects, but it seems that I can attach it to either.  Does anyone here know how I could attach it to both?

@stevekellogg try this: Consume Swift Package for multiple targets

Hi guys, does this issue mean we only can use Xcode 12 beta currently?

@lwfnz Yes - Xcode 12 is required.  SPM introduces some necessary features like binary and resource support with Xcode 12.
We completely agree that SPM is growing in importance, but it's still early days.  SPM is just now adding the features necessary to support large, long-standing code bases.  See this Twitter discussion for more on current SPM limitations.

@paulb777 Thanks for your quick reply.
It is certainly that the Cocoapods supports is important as well in the next year. Nonetheless, from new firebase users perspective, it would be significant to provide a fast lane to easier adopt firebase in their projects. Because this is not about tech but about market share competition among Google, AWS and MS.
Best wishes for your team.

@lwfnz Thanks!  It's a priority for us to get the SwiftPM fast lane in place. In the meantime, we'll continue to make sure the CocoaPods experience is as smooth as possible.

I noticed FirebaseFirestoreSwift isn't in the todo project (https://github.com/firebase/firebase-ios-sdk/projects/1) can/should it be added please?

@nikitaame FirebaseFirestoreSwift is in progress in #6072 and I've successfully built and run the Firestore quickstart with it. FirebaseUI is out of scope of the SDK project. I recommend opening a feature request at https://github.com/firebase/FirebaseUI-iOS.  However, I did do a hacky minimal implementation in https://github.com/firebase/FirebaseUI-iOS/tree/pb-spm sufficient for the Firestore quickstart.

@paulb777 (and anyone else working on this) Excellent work, exciting progress!

Something changed yesterday and I can no longer update or install the package.  It's worked of weeks and worked fine around 6:30 am, but I haven't been able to get it to work since sometime yesterday afternoon. Adding the package seems to work when the Firebase package is imported into another package, but adding Firebase directly or indirectly into a project fails with an error saying that the package can't be resolved. This consistently happens after the fetching of https://github.com/paulb777/nanopb.git.  The error is quite long and includes some local path info but ends with  rev-parse --verify '82230e9998a35a3d2144884204db64f045c880c4^{commit}' output: fatal: Needed a single revision

@ishabazz It seems that SwiftPM only clones a limited set of repo branches. Our CI caught the issue and we should merge #6187 to master later today to resolve. In the meantime the branch pb-fix-git is a workaround.

Are there installation instructions?
I'm new to Firebase and followed the console's setup instructions, simply swapping out the CocoaPods step with SPM (File > Add Swift Package > github URL > FirebaseAnalytics). Whatever I did was wrong because I couldn't get the SDK to actually contact the service. The only way I was able to get things working was by nixing SPM and manually downloading the frameworks, which is less than ideal.

Are there installation instructions?

Please select the "master" branch when adding the repo as a Swift Package.

Hi guys, I'm having a problem with FirebaseFirestore using the SPM, I'm sure I included it in the Targets -> Framework, Libraries

@ttimpe That's what I did. Are things just supposed to work at that point? If I need Analytics and Crashlytics in my app, do I just need the FirebaseAnalytics and FirebaseCrashlytics packages? Or do I also need Firebase or FirebaseCore? The instructions in the console say that I should be able to import the module Firebase in my code, but that module isn't available for me via SPM. I need to use FirebaseCore instead.

@jchitel The Firebase module is available via SPM.

@greyder We'll likely need a reproducible example to help investigate.

@paulb777 would it be better for me to create a separate issue to dig into this further? I'd rather not bloat this issue with my specific problems.

@jchitel Yes. Please create separate issues to discuss specific Swift Package Manager problems/questions.

Hi, when I added Firebase Analytics using SPM, the app size got increased by 20 MB, I don't think that this is normal.

Hey @FaroukZeino, as per Paul's comment previously it might be best to raise this as a new issue so it can be tracked and discussed on it's own.

I try connect firebase use swift package manager.

Enter: https://github.com/firebase/FirebaseUI-iOS
Enter branch: pb-spm

Click next button.

I see error:
Showing All Messages
: package at 'https://github.com/firebase/FirebaseUI-iOS' @ 25f6725045da8f0057748af48cfa5c55651feebb is using Swift tools version 5.3.0 but the installed version is 5.2.0
What am I doing wrong?
Mac OS: 10.15.6
Xcode: 11.6

You should use the 'master' branch as per a comment further up in the thread. :-)

@ramzesku The referenced Firebase UI branch is a prototype of a small part of the API. It is not ready for use. Please follow https://github.com/firebase/FirebaseUI-iOS/issues/886 for FirebaseUI.

Also Xcode 12 is required to use SPM with the master branch of https://github.com/firebase/firebase-ios-sdk.git.  At least beta 4 is required for FirebaseAnalytics. At least beta 5 is required for SwiftUI preview support.

We're starting a Swift Package Manager beta for Firebase. To use it select the Firebase GitHub repository - https://github.com/firebase/firebase-ios-sdk.git and 6.31-spm-beta.
Limitations include:

Requires at least Xcode 12 beta 4.
SwiftUI Previews require Xcode 12 beta 5.
Analytics requires clients to add -ObjC linker option.
Analytics is only supported for iOS and cannot be used in apps that support other platforms.
Messaging, Performance, Firebase ML, and App Distribution are not initially available.
watchOS support is not initially available.

See more detailed instructions here.
I'm going to lock this issue for only future status updates.
Please create a new GitHub Issue(https://github.com/firebase/firebase-ios-sdk/issues/new?template=bug_report.md) for any questions, comments or issues about Firebase and Swift Package Manager (including for the limitations listed above).
See current open Swift Package Manager issues here.

With the Firebase 7.0.0 release, we now support standard Swift Package Manager versioning. The beta status continues while we get the last few Firebase products supported and the Xcode Swift Package Manager implementation stabilizes.
Getting started instructions at https://github.com/firebase/firebase-ios-sdk/blob/master/SwiftPackageManager.md
Please open an issue with any questions or bugs.


[DS-2426] added possibility to use relative import in oai xslt transformations

To test the pull request create an additional XSL-file like:
dspace/config/crosswalks/oai/transformers/utils.xsl
and import in in driver.xsl (<xsl:import href="utils.xsl"/>)
without this pull request there will be an exception.
Note
I accidentally formated the source code according to the DSpace rules. The  relevant code is in lines 40-50
https://jira.duraspace.org/browse/DS-2426

+1, tested


Allow execution of specific notebooks to be skipped

Currently it's possible to tag specific cells for skipping execution (with skip-execution) but there's not a way to do this for entire notebooks. It would be useful if this were possible either in page metadata, or in a list of exclude glob patterns in myst.yml.
This is useful when you have:

A notebook that you know is broken, and so you don't want to clog up your build with broken execution
A notebook that takes a lot of resources to build, and you want to run it once and embed the outputs inside without re-executing

In JB1 there's support for per-notebook execution (c.f. https://jupyterbook.org/en/stable/content/execute.html#exclude-files-from-execution). We should allow opt-out on a per-notebook basis, in addition to a broader solution regarding execution strategies!


updated simulated hand data profile with required fields for IMixedRealityHandControllerDataProvider

XRTK - Mixed Reality Toolkit Change Request
Overview
This should get the branch to compile successfully again.
All I did was add the required fields to the profile.

Yeah same concern here as well about duplicating them, but atm I don't see a way around it.
Goes back to the discussion we were having around global vs platform specific settings.


Can't build it

I tried to build on Visual Studio Community 2017, but can't build with some errors.
Could you tell me how to build it?

Can you try again? You might get different errors but i think these particular errors should be fixed. Make sure you download the submodules too and that all projects load successfully (you have 2 projects that aren't loaded in the image).

OK. Certenly I have forgetten to clone submodule. I retry it as;
git clone git@github.com:Skippeh/Oxide.GettingOverItMP.git --recursive
but my build is still failed with another errors.
It looks like errors about Unity Engine.


Add more logs to Narwhal worker startup

Description
We have observed validators crashing on restart, because Narwhal worker did not finished starting up in 30s. Adding a bit more logs to help locate the root cause.
Test Plan
CI

If your changes are not user-facing and not a breaking change, you can skip the following section. Otherwise, please indicate what changed, and then add to the Release Notes section as highlighted during the release process.
Type of Change (Check all that apply)

[ ] user-visible impact
[ ] breaking change for a client SDKs
[ ] breaking change for FNs (FN binary must upgrade)
[ ] breaking change for validators or node operators (must upgrade binaries)
[ ] breaking change for on-chain data layout
[ ] necessitate either a data wipe or data migration

Release notes

Keep in mind that you can also monitor the start/stop of the individual tasks on our components (ex batch_maker, quorum_waiter etc) by enabling the INFO level log for worker , as all of them are spawned via the spawn_logged_monitored_task - this might be extra helpful info here.

Yeah I'm aware of the spawn_logged_monitored_task


iOS9 canOpenUrl is disabled

has any other way?

No, unfortunately there is no other method that will work.

tks, i use private api for this


Fix open image

Add open.svg to assets/img

No, you don't need animations here.

No, you don't need animations here.


Broadcast internal/allow/block networks to all Hogs

Add function to broadcast internal/allow/block networks to all Hogs
internal networks is the networks of customer assigned to review node

When a new node with review is inserted, the customer networks of the node is broadcasted.
When the customer of review node is changed, the networks of new customer is broadcasted.
When the customer networks of review node is changed, the changed networks is broadcasted.
internal networks includes all of the Intranet, Extranet, Gateway addresses of customer.

The networks are defined as following:
struct HostNetworkGroup {
    hosts: Vec<IpAddr>,
    networks: Vec<IpNet>,
    ip_ranges: Vec<RangeInclusive<IpAddr>>,
}

Codecov Report
Patch coverage: 51.05% and project coverage change: -0.44 :warning:

Comparison is base (c30f351) 55.20% compared to head (4381117) 54.76%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #30      +/-   ##
==========================================
- Coverage   55.20%   54.76%   -0.44%
==========================================
  Files          45       45
  Lines        8275     8454     +179
==========================================
+ Hits         4568     4630      +62
- Misses       3707     3824     +117

Impacted Files
Coverage Δ

src/graphql/allow_network.rs
83.96% <0.00%> (-9.03%)
:arrow_down:

src/graphql/block_network.rs
83.96% <0.00%> (-9.03%)
:arrow_down:

src/graphql/node.rs
86.02% <ø> (ø)

src/graphql.rs
43.72% <27.27%> (-1.33%)
:arrow_down:

src/graphql/customer.rs
58.96% <55.20%> (-2.99%)
:arrow_down:

src/graphql/node/crud.rs
57.92% <71.66%> (-0.06%)
:arrow_down:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Incorrect repo url

This issue targeting the root of the #9 issue. I'm unable to reopen it, so raise a new one here. Please check the #9 for the description and a fix provided.
This also affects the standalone toolkit installation instructions, which should be updated as well.

Merged #11, which fixes #9. Updated the READMEs of the existing kits.
Thanks again!


Templates Futures fix - Olympics (Summer, Winter)

retire old templates and add title property to template source
Use this title in the market list cards for SB
Summer
Olympics: Which country will win the most [Medal type] medals at the [Year] Summer Olympics?
Header: [Year] Summer Olympics
Title: Most [Medal type] medals
Olympics [Sport]: Which country will win the Gold medal in [Event] at the [Year] Summer Olympics?
Header: [Year] Summer Olympics [Sport]
Title: [Event] Gold medal winner
Winter
Olympics: Which country will win the most [Medal type] medals at the [Year] Winter Olympics?
Header: [Year] Winter Olympics
Title: Most [Medal type] medals
Olympics [Sport]: Which country will win the Gold medal in [Event] at the [Year] Winter Olympics?
Header: [Year] Winter Olympics [Sport]
Title: [Event] Gold medal winner

not able to test bc the range in the dropdowns pushes us outside the time frame length to have a market for v2


Update schema to v1.1.3

Description of change
ownership_type was previously a required field in the schema which was breaking in progress applications
Fixes sentry error: https://mojdt.slack.com/archives/C056U956ESH/p1716307797032809
Link to relevant ticket
Notes for reviewer / how to test

Covered by https://github.com/ministryofjustice/laa-criminal-applications-datastore/pull/263


Api Resource List not renderining

Hi,
I was trying the admin ui. I could see the response from the api-resource/list i.e, "{"Success":true,"Data":[{"Name":"xxx","Description":"OAuth2 Server Management Api"}],"Errors":null}"
But the same is not rendering on the html page. The page is showing loader whereas the call to get the data has finished. Any idea?

Hi,
I'll check it today

@niteshgaba
I realized that after few minutes the access_token expires. Then Admin-Ui wasn't renewing it. So I've made some changes and I believe it won't occur at next version.

@niteshgaba Check it again! I've increased expiration time and changed the openid connect config at Admin-ui
I'm closing it, feel free to open again if the problem still happen!


InlineMapping roadmap?

I believe that Source Generators have a great use case for object mapping. As you've stated, the memory and execution time is vastly better if these object mappings are generated at compile-time instead of at runtime.
However, there are so many features that are available in AutoMapper that make the developer tooling better.
e.g. AutoMapper has a nested mapping feature described here.
I believe this project has a lot of valid use-cases but lacks features in comparison to its competitors. I would like to develop this project with you if there is a project roadmap in some capacity.

You have a point that I don't have a roadmap anywhere. That's also somewhat deliberate :). My intent for this repository is not to "compete" with other projects; rather, it's a way to learn about source generators along with other development techniques. AutoMapper is feature-rich, and to put the time and energy into "repeating" that isn't all that appealing to me.
All that said, I'll consider have some kind of roadmap document here. If you have ideas to add to this project, feel free to add issues, and I could put them in the roadmap.

That's fair, I don't want to rob you of the original intentions of the project.
I also would like to use this as a learning experience, but also have an alternative to other object mappers.

I'd love to have some help/collaboration. Then I don't have to do everything :)
I'll get a roadmap done and committed. If you have features that you'd like to see added to InlineMapping, add them as issues and I'll review them.

Take a look at https://github.com/mrtaikandi/MapTo seems to be doing the same kind of source generator. Collaborate perhaps?

So, what I'm going to do is keep doing what I have been using: milestones. I really don't have a lot of plans for this package, other than "keep it simple". As long as features are suggested that make the developer's life easier and less complicated, I'll consider it.
I just created a 1.3.0 milestone (I'm going to release 1.2.0 today), and there are two issues that people could take if they want. I don't have any other issues/features in the pipeline, so....if people want to make suggestions, I'll triage them and figure out what milestone they go in.
@coderdnewbie I wasn't aware of MapTo, but....I'm going to keep this repo going. One other aspect is that I can use this as demo code for presentations I do, and I'd like to keep that sense of ownership.


test(getRestangularUrl): add tests for getRestangularUrl

As per #1421

Coverage remained the same at 84.296% when pulling 8d9288d573090d02329ae8ca3c3a6969bea2f070 on spec-1421-getrestangularurl into e39fa41fc1ef32c14e52eecf3e5a0b6b1a00691b on master.

Coverage remained the same at 84.296% when pulling aac96122a2480ed1538b18aefb56e844f6fc0b9e on spec-1421-getrestangularurl into e39fa41fc1ef32c14e52eecf3e5a0b6b1a00691b on master.


Transfer isoseq pipeline to official GENE SWITCH repository

I started the development of the pipeline on my own repository.
Today, even if the pipeline is not in a stable state, It's mature enough to run.
The pipeline will have to be upgraded to the last version of DSL2 templates from nf-core.
It will be the opportunity to rename it for sticking Gene Switch guideline.

Thanks :)


Python 2 requirement

Attempting to build this project from source, I noticed the packaged CTemplate version has a Python 2 build/installation requirement:
[ 70%] Performing build step for 'CTemplate'
  File "/home/HemePure-GPU/dep/build/CTemplate-prefix/src/CTemplate/./src/htmlparser/generate_fsm.py", line 309
    print '\n'.join((self._CreateHeader(),

There has only been one new CTemplate release (v2.4), but I haven't yet inspected if it was replaced with Python 3.

Okay, it looks like the switch was made in v2.4 of CTemplate: https://github.com/OlafvdSpek/ctemplate/commit/ee11ba100a909bff3698e1332ffb133a2ea9b3ee
Since Python 2 is now unsupported, some environments don't provide it anymore.
Replacing the old tarball (https://github.com/UCL-CCS/HemePure-GPU/blob/master/dep/src/ctemplate-2.3.tar.gz) with the new one (https://github.com/OlafvdSpek/ctemplate/releases/tag/ctemplate-2.4) would be the solution.

Replacing the tarball with the new version or simply using the CTEMPLATE_TARBALL variable doesn't work, because the CMake script expects to find an executable configure:
[ 70%] Creating directories for 'CTemplate'
[ 75%] Performing download step (download, verify and extract) for 'CTemplate'
-- Downloading...
   dst='/home/HemePure-GPU/dep/build/CTemplate-prefix/src/ctemplate-2.4.tar.gz'
   timeout='none'
   inactivity timeout='none'
-- Using src='http://github.com/OlafvdSpek/ctemplate/archive/ctemplate-2.4.tar.gz'
-- Downloading... done
-- extracting...
     src='/home/HemePure-GPU/dep/build/CTemplate-prefix/src/ctemplate-2.4.tar.gz'
     dst='/home/HemePure-GPU/dep/build/CTemplate-prefix/src/CTemplate'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 79%] No update step for 'CTemplate'
[ 83%] Performing patch step for 'CTemplate'
noalign
novacopy
[ 87%] Performing configure step for 'CTemplate'
/bin/sh: /home/HemePure-GPU/dep/build/CTemplate-prefix/src/CTemplate/configure: No such file or directory
make[2]: *** [CMakeFiles/CTemplate.dir/build.make:92: CTemplate-prefix/src/CTemplate-stamp/CTemplate-configure] Error 127
make[1]: *** [CMakeFiles/Makefile2:139: CMakeFiles/CTemplate.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

The configure script is only available after ./autogen.sh has been run, which must have been the case in the current tarball.
To fix this I had to patch this line:
https://github.com/UCL-CCS/HemePure-GPU/blob/a398c30b45ebbf8461c8e76029827173b52d7cd7/dep/CMakeLists.txt#L229
-	CONFIGURE_COMMAND	<SOURCE_DIR>/configure --prefix=<INSTALL_DIR> ${CTEMPLATE_CONFIGURE_OPTIONS}
+	CONFIGURE_COMMAND	<SOURCE_DIR>/autogen.sh && <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> ${CTEMPLATE_CONFIGURE_OPTIONS}

I was finally able to build CTemplate now 🚀
[100%] Completed 'CTemplate'
[100%] Built target CTemplate

It did however choke with the NVIDIA nvc/nvc++ compiler, so I switched to gcc for the dependency libraries.

Hi Ivan,
Another alternative is to use python's function 2to3 to convert the python
scripts that cause the problem.
So when it complains about the python 2 files (there will be 2 in total)
you can do the conversion by using
2to3 - w path_to_python_file/python_file.py
You will do that twice.
I will get back to you in a while with more details regarding these files.
Best,
Ioannis
On Wed, 3 May 2023, 13:21 Ivan Pribec, @.***> wrote:

I was finally able to build CTemplate now 🚀
[100%] Completed 'CTemplate'
[100%] Built target CTemplate
It did however choke with the NVIDIA nvc/nvc++ compiler, so I switched to
gcc for the dependency libraries.
—
Reply to this email directly, view it on GitHub
https://github.com/UCL-CCS/HemePure-GPU/issues/6#issuecomment-1532781186,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMNBIMBMHDKFCRAGCFZXX2DXEIWRVANCNFSM6AAAAAAXUEAZKM
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Thanks for the tip, I was not aware of the 2to3 tool. 👍🏻
The environment I'm working in is somewhat restricted, I have no pip access, and only Python 3.9 is available by default. Not even automake/autoreconf were present to build CTemplate, but I got hold of them through a module.
As far as I can see, the only difference in CTemplate v2.4 is the switch to Python 3. It is also used in HemePure-CPU Spack build: https://github.com/compbiomedeu/compbiomed-spack/blob/main/packages/ctemplate/package.py#L33

I understand what pain this can be... On a different note I got rid of the memory allocations inside the GPU kernels that were causing a problem with porting to oneapi. So I should be able to make progress on that task soon. I just need to finalize a few other things this week with the hipified code first. I will keep you posted Best, Ioannis Sent from my phone-------- Original message --------From: Ivan Pribec @.>Date: Wed, 3 May 2023, 13:35To: UCL-CCS/HemePure-GPU @.>Cc: izacharo @.>, Comment @.>Subject: Re: [UCL-CCS/HemePure-GPU] Python 2 requirement (Issue #6)
Thanks for the tip, I was not aware of the 2to3 tool. 👍🏻
The environment I'm working in is somewhat restricted, I have no pip access, and only Python 3.9 is available by default. Not even automake/autoreconf were present to build CTemplate, but I got hold of them through a module.
As far as I can see, the only difference in CTemplate v2.4 is the switch to Python 3. It is also used in HemePure-CPU Spack build: https://github.com/compbiomedeu/compbiomed-spack/blob/main/packages/ctemplate/package.py#L33
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

I think this issue is also resolved by #9? cc @benczaja

Yes it should be (@ivan-pi). Though I think that the HIP branch (https://github.com/UCL-CCS/HemePure-GPU/tree/HIP) still does not have the merge


Remove the "Play Every Frame" playback option?

Is this still a useful feature to have? It doesn't really work in the current version and would simplify the code if we could remove it.

I find this feature useful to make sure I don't miss any frames if playback can't keep up with the target frame rate.


Fixed Reset Password Page

Fixed issue #146
Please review it @osBins

Hey @snahashisk, what's the change in old.main.css for? Is it being used anywhere?

Ig prettier fixed indentation in old.main.css.

Hey @snahashisk , there's a font inconsistency, can you please look into it? Screenshot comparison:

Okay I'll fix that.

Fixed that issue.

Used 2 different browser getting same result.

Looks good to me 🚀


feat(CopyAndPaste): Adding clipboard permissions to iframe

Adding clipboard permissions to iframe in preparation for the copy and paste component in blip-chat

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


use nonrec to remove the module used for namespacing collections

Fixes a TODO; builds over #14

I didn't know about this thanks! Just merged #14, will merge once green :))


pull request for e2e test at 01/26/2017 07:45:06

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Initial commit

This hook works by copying the configuration that is on the root system into the initramfs.

Thank you very much for sharing your scripts.
On my Raspberry Pi 4 the tor-client (tor <IP_ADDRESS>, linux 4.19.88-1-ARCH, libevent 2.1.11-stable, openssl 1.1.1d, zlib 1.2.11, liblzma 5.2.4, libzstd 1.4.4) doesn't work in the initramfs early userland. I assume this is due to the Pi's lack of a hardware clock. The tor-client is trying to bootstrap a connection to the tor network for about 3 minutes. When giving up the tor-client is displaying the standard failure message ("Tor can't help you...") and the wrong date and time.
The netconf hook set up the eth0-interface correctly and has assigned working ip, netmask, gateway and dns. The machine is ping-able from the LAN. I'm going to add a small ntp-client as a binary to the initcpio, in case that works, I let you know if you are interested.


DRILL-6553: Fix TopN for unnest operator

estimateRowCount() method for DrillLateralJoinRelBase rel node wasn't overridden, so was used method from AbstractRelNode class, which just returns 1. It caused problems with choosing better plans.
For more details please see DRILL-6553.

@HanumathRao can you review this?

@vvysotskyi Thanks for making the changes. Changes look good to me. +1.


Add TPU example

What does this PR do?

The TPU notebook linked in README is broken and too old. Added a new one in examples and linked the same in README.
Before submitting

[ ] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[x] Did you read the contributor guideline, Pull Request section?
[x] Did you make sure your PR does only one thing, instead of bundling different changes together? Otherwise, we ask you to create a separate PR for every change.
[x] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?
[ ] Did you verify new and existing tests pass locally with your changes?
[ ] If you made a notable change (that affects users), did you update the CHANGELOG?

PR review
Anyone in the community is free to review the PR once the tests have passed.
Before you start reviewing make sure you have read Review guidelines. In short, see the following bullet-list:

[x] Is this pull request ready for review? (if not, please submit in draft mode)
[x] Check that all items from Before submitting are resolved
[x] Make sure the title is self-explanatory and the description concisely explains the PR
[x] Add labels and milestones (and optionally projects) to the PR so it can be classified; Bugfixes should be including in bug-fix release milestones (m.f.X) and features should be included in (m.X.b) releases.

Did you have fun?
Make sure you had fun coding 🙃

@edenlightning mind review?


Move DOCUMENTATION_OPTIONS to external JS for purposes of CSP

Ref: https://github.com/sphinx-doc/sphinx/issues/3620
https://github.com/rtfd/sphinx_rtd_theme/issues/414
Currently the only thing that needs to be fixed for CSP support is removing this bit of inline javascript. This is probably not the best way to do things, but I'm opening this PR for feedback. Even if it doesn't get approved, suggestions would still be useful so I can use them for my own site.

I would like to see sphinx themselves add support for this first see: https://github.com/sphinx-doc/sphinx/blob/master/sphinx/themes/basic/layout.html#L89

Also, I think it should be possible to have the jinja parts fully in that linked js file by renaming it to a js_t file. For example, https://github.com/sphinx-doc/sphinx/blob/master/sphinx/themes/basic/static/searchtools.js_t

Interesting, did not know about js_t, thanks. Will close this for now.


Generalize Qwen tokenizer fix

This PR improves the handling of Qwen's tokenizer (which is a custom integration of tiktoken into HF tokenizers format, and does not support some of HF's functionality/tokenizer methods). It should catch all cases where a Qwen-based model is used now.
closes #1092 .

@lintangsutawika does this fix look ok?

Sorry bout that, this looks good.

Nw, thanks a bunch!


[BUG] Annotated attributes of cclass are not supporting pointers

Describe the bug
The compilation is failing, when attribute of cclass is declared using annotated type containing pointer.
To Reproduce
Following code:
import cython

@cython.cclass
class Foo:
    a: cython.pointer(cython.int)

    def bar(self):
        self.a = cython.NULL

fails during compilation with error:
$ cython -3 test.py

Error compiling Cython file:
------------------------------------------------------------
...
@cython.cclass
class Foo:
    a: cython.pointer(cython.int)

    def bar(self):
        self.a = cython.NULL
                      ^
------------------------------------------------------------

test.py:8:23: Cannot convert 'void *' to Python object

Expected behavior
Compilation should be successfull.
Environment (please complete the following information):

OS: Linux
Python version: Python 3.9.2
Cython version: master

Additional context
When declare() statement or cython.p_int type is used, compilation is successful:
import cython

@cython.cclass
class Foo:
    a = cython.declare(cython.pointer(cython.int))

    def bar(self):
        self.a = cython.NULL

import cython

@cython.cclass
class Foo:
    a: cython.p_int

    def bar(self):
        self.a = cython.NULL

This is a know issue and something that should work with the dataclasses PR #3400.
https://github.com/cython/cython/blob/9f78ed075f7371f931c7fa76b45589841c25668f/Cython/Compiler/ExprNodes.py#L2037-L2038

I don't think this is fixed by #3400? I get the same issue on the dataclass branch (and the same issue again if I mark it as a Cython dataclass, just to check that this wasn't making a difference).
If I remove the function with the NULL assignment then it compiles to
struct __pyx_obj_9ptr_annot_Foo {
  PyObject_HEAD
  PyObject *a;
};

(i.e. not an int* pointer).
So I don't think there's anything I can cherry-pick for a quick solution to this...

The warning:
 warning(annotation.pos, "Annotation ignored since class-level attributes must be Python objects. "
         "Were you trying to set up an instance attribute?", 2)

Is catching things like:
cdef class X:
    x : cython.int = 5

which are treated differently in regular classes and dataclasses. But it's the assignment at the point of definition that's relevant here.

This bug can be closed since it seems working on master branch.
(cython39) matus@MacBook-Pro:~/dev/cython/test$ cat test.py
import cython

@cython.cclass
class Foo:
    a: cython.pointer(cython.int)

    def bar(self):
        self.a = cython.NULL
(cython39) matus@MacBook-Pro:~/dev/cython/test$ cython -3 test.py
(cython39) matus@MacBook-Pro:~/dev/cython/test$

For information, this was fixed in cb5eb5a139cbefddffa54a7bddf64b3a03f349fd

(so actually you reported this bug twice... nevermind!)

¯_(ツ)_/¯


i chouldnt complete the setup

sudo php artisan tenancy:install
[InvalidArgumentException]
Database [system] not configured

Hello @meritlouka ,
Thank you for trying out this package. I'd like you to point to the documentation which points out the need for a system connection:
https://laravel-tenancy.com/documentation/introduction/requirements#elevated-database-user


InputStream not closed in class org.jsoup.nodes.Entities

Problem:
InputStream is not closed in class org.jsoup.nodes.Entities which may cause exceptions in J2EE applications.
Version:
1.10.3
Details:
The class org.jsoup.nodes.Entities provides different Entities#EscapeModes that call org.jsoup.nodes.Entities#load(...) to load the appropriate properties file. The file is loaded by creating an InputStream which is never closed. This may cause problems in some applications and may lead to an exception when undeploying a J2EE application.
A solution would be to close the input stream in a finally-block at the end of the try-catch-block that reads the content of the input stream:
private static void load(EscapeMode e, String file, int size) {
    ...
    InputStream stream = Entities.class.getResourceAsStream(file);
    if (stream == null)
        throw new IllegalStateException("Could not read resource " + file + ". Make sure you copy resources for " + Entities.class.getCanonicalName());

    int i = 0;
    try {
         ByteBuffer bytes = DataUtil.readToByteBuffer(stream, 0);
         ...
    } catch (IOException err) {
         throw new IllegalStateException("Error reading resource " + file);
    } finally {
        try {
            stream.close();
        } catch (IOException ioex) {
            // ignore
        }
    }

See also Do unclosed streams cause memory leaks in java?

Android strictmode also report this issue, pls fix

Im having the same issue

Fixed with merge of #928


[QUESTION]File not found!

Hello.
I have a photo which is located under this link:

http://<IP_ADDRESS>:8000/photos/391987500/2.jpg

I'm trying to include it in to excel file but I always have an error.
I try this:
lot_id}}/2.jpg" width="30" height="30">

it returns this error:

File /photos/391987500/2.jpg not found!

I try this:
lot_id . '/2.jpg'}}" width="200" height="200">

it returns this error:

File /Users/apple/projects/asystem/public/photos/391991903/2.jpg not
found!

I try also this:
lot_id . '/2.jpg')}}" width="200" height="200">

and it also returns error:

File http://<IP_ADDRESS>:8000/photos/391987500/2.jpg not found!

How can I get it done?

Finally, i get it! no need for /  just need to do lot_id}}/2.jpg" width="30" height="30">
Sorry, my bad


Improve wording for "no exposures"

Current Implementation
Currently the text for low risk reads "No exposures up to now", which is misleading and might promote dangerous behaviour.
Suggested Enhancement
Replace the text by "No known exposures up to now".
Expected Benefits
For an exposure to show up in the app there is a couple of additional requirements that don't change the risk of an infection like the infected needs to use the app, has to be tested and has to share the test results. While the numbers will hopefully improve, this gives an estimated probability of an exposure to show up in the app of currently below 10%. Stating "no exposures" might lead to the wrong conclusion of "the app told me I'm not infected" and probably reduced safety measured because of that.

I think you should suggest it in #332, as this issue deals with text changes.

Hello @nicktar,
thank you for bringing this up. As you are not the only one that has suggestions on this and as this is also valid for our corresponding iOS app, please move this discussion to the documentation repository issue 175 for general suggestions. You can of course also suggest this in #332 (thanks @tomjschwanke =))!
Since this seems to be a duplicate of #640, I am closing this issue.
Best,
Marc


Incremented api version # to 0.44.2

Co-Authored-By: Matt Grohnke<EMAIL_ADDRESS>Description
The Data Science api functionality was updated and merged, but the api version numbering was not updated along with the code change.
Incremented ds api version from 0.44.1 to 0.44.2.
Also cleaned up docstring in 'financial_aid' function (removing duplicated "the" strings).
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[x] Bug fix

Checklist:

[x ] My code follows PEP8 style guide
[x ] I have removed unnecessary print statements from my code
[x ] I have made corresponding changes to the documentation if necessary
[x ] My changes generate no errors
x[ ] No commented-out code
[x ] Size of pull request kept to a minimum
[x ] Pull request description clearly describes changes made & motivations for said changes

Pair Programming:
Who you paired with: Matt Grohnke
What pairing method(s) you used: Driver-navigator
How did it go? What did you learn?: This is my first (hopefully most minor) pull request, but Matt showed me how to leverage GitHub Desktop to simplify the pull request lifecyle.
Loom Video:
https://www.loom.com/share/de93e5931a8e47ea82f7a00109a0724e

Nice catch on these issues. Good Job


[SOLP-2592] Adding info about version control dump

Hey, yeah!

Hey @quinntracy I will need to update this PR as if I'm correct freeze is today for 10.14 and weren't able to merge this patch in time so we will move it to the 10.15

@quinntracy  I have updated the PR (change from 10.14 to 10.15

To be merged with 10.15 release


Libraries.io API for dependency monitoring?

See #2.

https://libraries.io/api#repository

https://zenodo.org/records/808273#.WV35s9Pytcw: fixed dataset including repos, but that's not real-time info


How to change line length?

The default 80 is obsolete many developers would say.

cpplint (Which this package is merely an interface for) strictly follows Google's style guide which states that line length must be a maximum of 80 characters.
It doesn't look like this linter has any configuration available, so there is nothing that can be exposed in this plugin.


Fix a data race condition when a service is initially flushed multiple times in parallel

get_app() could be executed twice, while the AppInstance is still building. Prevent that by creating a future around it.
Also refactor register_service_and_flush_queued_actions to be a bit simpler and safe to repeated/concurrent calls of it.

Yes, it's essentially a lock, but I'm not sure how to express this in simpler terms, a read/write sync-safe lock could do it too probably, but coming from an async world, this pattern is fairly standard to me.


Merge to live!

Excel: Custom Functions edits, AutoFilter API edits
Update description

Docs Build status updates of commit 20328e2:
:clock10: Pending: waiting for processors (58 builds ahead of you)
:warning: Docs Build is busy, currently there are 58 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 20328e2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/excel/custom-functions-troubleshooting.md
:white_check_mark:Succeeded

docs/excel/excel-add-ins-tables.md
:white_check_mark:Succeeded

docs/excel/excel-add-ins-worksheets.md
:white_check_mark:Succeeded

docs/reference/requirement-sets/office-add-in-requirement-sets.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Update app.component.html

optimize svg src (logo)
use base64 of
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 250 250">
  <path fill="#DD0031" d="M125 30L31.9 63.2l14.2 123.1L125 230l78.9-43.7 14.2-123.1z"/>
  <path fill="#C3002F" d="M125 30v22.2-.1V230l78.9-43.7 14.2-123.1L125 30z"/>
  <path fill="#FFF" d="M125 52.1L66.8 182.6h21.7l11.7-29.2h49.4l11.7 29.2H183L125 52.1zm17 83.3h-34l17-40.9 17 40.9z"/>
</svg>

instead of Adobe Illustrator export svg result

I signed it!

We just moved our blueprints to using Schematics. Could you submit a PR on https://github.com/angular/devkit instead? Thanks!


[BUG] chaining of query strings seems to be broken

Describe the bug
Using a single query string works like ?hide_sidebar, however if I use ?hide_sidebar?hide_search neither parameters work and the default view is loaded.
To Reproduce
Steps to reproduce the behavior:

Go to 'HA UI with `?hide_sidebar?hide_search'

Expected behavior
Sidebar and Search button are hidden
Versions:

Home Assistant: 2023.12.1
Kiosk-Mode [v4.6.0]

Additional context
I've worked around by using the dashboard config yaml instead which works.

Hi @stonith,
Please, check this.
Regards


Be more lax with lcobucci/jwt

V5 is out but being more lax with v4 minor would be a good start

Thanks @BafS !


E274: allow tab indentation before keyword

Summary
E274 currently flags any keyword at the start of a line indented with tabs. This turns out to be due to a bug in Whitespace::trailing that never considers any whitespace containing a tab as indentation.
Test Plan
Added a simple test case.

Thanks!


Cannot add new sound_bank parameter to SoundLoadBank

Normally you can't add duplicated paramters but for this one it's an exception.
In this case in HAB_SHOPPNGCENTRE If one wants to add an alien to the script they also have to add
a soundbank reference but that option is now missing.
The ability to type manually a known parameter is no longer present and in this case would be beneficial.
The use legacy parameter creation option is the work around for this issue.
If anyone sees this ticket in the meantime.

I am dumb.  Disregard.  I'm trying to add the sound bank wrong.


fix: Fix content type to application/yaml

fix https://github.com/raeperd/kickstart.go/pull/25#discussion_r1875528029
cc @ccoVeille

You could have pushed your commit in my branch, no?

I couldn't. maybe allow edit was needed?

I think it's a limitation of something I tried.
I moved my forks in a dedicated organization
https://github.com/ccoveille-forks
I didn't notice until yet it may have consequence when I open a PR.
Doing it from an organization and from a user might differ slightly.
If I don't grant you to push on my fork in my organization, you might not be able to do it.
I'll have to dig further.
I did all that with a script. I might have to grant the users one by one.
Which would be easy for you on this project. But it could become a nightmare on project with multiple maintainers...
I'll have to check and reconsider

Here is my script
https://github.com/ccoVeille/github-forks-sanitizer/pull/1


nixos/minio: introduce rootUser and rootPasswordFile options

The rootCredentialsFile option had users create a file to be passed to EnvironmentFile= such as the following:
MINIO_ROOT_USER=foo
MINIO_ROOT_PASSWORD=foobarbaz

Requiring both values in the same file prevented reusability of the individual values when using file-encryption-based secret provisioning such as agenix or sops-nix.  This commit therefore deprecates rootCredentialsFile in favor of two new options.

Things done

Built on platform(s)

[ ] 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

[ ] 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/)
25.05 Release Notes (or backporting 24.11 and 25.05 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.

Add a :+1: reaction to pull requests you find important.

CC @bachp

(I'm still working on the tests.)

I think this looks reasonable as it seems there is no better way to pass the credentials to Minio.
We should also add an entry to the release notes as this is a breaking change for existing minio users.

The old configuration should still work with the exception of the minio-restart service, which I just updated to only check for the new path. We could also have two such services to be fully backwards compatible.
Supporting 3 different ways of configuration for the credentials (accessKey & secretKey, rootCredentialsFile and now rootUser/rootPasswordFile) does however complicate the nix module a bit. Especially the test code if we want to exhaustively test all supported ways. Perhaps we should remove one or both of the now deprecated ways? I'm not sure what the common practice regarding option deprecation/removal is.
But yes in any case I agree that this should be noted in the release notes (either the deprecation or the removal).

I think if we remove the options we should turn the warnings into errors though, right? Because at that point it's effectively specifying an unknown option for which Nix issues errors. The manual errors would just serve a better UX to directly point the users to the new options. And then I think we should also specify visible = false for the no longer supported options, so that they don't show up on https://search.nixos.org/options.


[bug] Update T6 Pro Z-Wave Programmable Thermostat

Version
Build/Run method

[X] Docker
[ ] PKG
[ ] Manually built (git clone - npm install - npm run build )

zwavejs2mqtt version: 1.1.1
zwavejs version: 6.2.0
Describe the bug
The zwave controls for T6 Pro Z-Wave Programmable Thermostat are missing some features. The fan controls are not existent as well as some other features seem to be missing.
Additional context
OpenZwave link https://github.com/OpenZWave/open-zwave/blob/master/config/honeywell/th6320zw2003.xml
OpenSmartHouse Link https://opensmarthouse.org/zwavedatabase/765
Coming from Home Assistant "contributing the device configuration file" is unclear to me. I have read https://zwave-js.github.io/node-zwave-js/#/development/config-files?id=contributing-configuration-files
I've attached the configuration file I pulled from home assistant to show how it used to work. Original file was a xml file.
T6config.txt

Please open an issue in the Home Assistant core repository instead.
Also, please create a dump of your Z-Wave network and upload the dump as a text file after creating the issue.
The dump tool is available in the configuration panel of the Z-Wave JS integration, reached from the integrations page in the Home Assistant GUI.
The network dump will help us troubleshoot your device.
Thanks!


[$500] [Wave 8] [Ideal Nav] Refreshing the browser on a Workspace item page causes double navigation

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

Version Number:
Reproducible in staging?:
Reproducible in production?:
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by:
Slack conversation:
Action Performed:

Shrink your web browser
🔧 Workspace Settings > Reimbursements > refresh the page > Press your browser's back button

Expected Result:
The back button should take you to the Workspace Settings page
Actual Result:
After the back button is pressed, you're still on the Reimbursements page. You need to click the back button once more to go back to the Settings page.
Workaround:
N/A
Platforms:

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

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
video ->  https://github.com/Expensify/App/pull/33280#issuecomment-1911319957

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~010bd1212900e21158
Upwork Job ID:<PHONE_NUMBER>296509952
Last Price Increase: 2024-02-02
Automatic offers:

ntdiary | Reviewer | 0
bernhardoj | Contributor | 0

@ntdiary do you mind reviewing the proposal above? thanks!

My proposal here can solve this too.

@bernhardoj could you double post the solution here if you can? and if you can explain how your solution solves both issues at the same time, that would be super helpful 🙇

Proposal
Please re-state the problem that we are trying to solve in this issue.
The app navigates to the reimbursement page twice when refreshing the web, so we need to press back twice to close it.
What is the root cause of that problem?
When we open a URL on the web, it will open the corresponding page and at the same time call Report.openReportFromDeeplink which will call an extra navigation call with a PUSH type.
https://github.com/Expensify/App/blob/3ab4e6e12d9ff38e69493321f0d31f032481b373/src/libs/actions/Report.ts#L2164
We already have a logic to not apply the PUSH action if the route destination is the active route.
https://github.com/Expensify/App/blob/3ab4e6e12d9ff38e69493321f0d31f032481b373/src/libs/Navigation/linkTo.ts#L246-L248
But after the ideal nav PR, we modify this logic to change the action type to PUSH if the destination is a central pane navigator (which is true for reimbursement page) but the current central pane screen is not a report screen, so we always push another reimbursement page to the stack (or any other central pane route)
https://github.com/Expensify/App/blob/3ab4e6e12d9ff38e69493321f0d31f032481b373/src/libs/Navigation/linkTo.ts#L162-L179
What changes do you think we should make in order to solve the problem?

We should check whether the route destination is the same as the current central pane route instead of checking whether it's a report screen or not. If it's the same, then don't push it.
topmostCentralPaneRoute.name !== action.payload.params.screen

This will solve https://github.com/Expensify/App/issues/35692 too with the same root cause explained there

@ntdiary could you review the proposals when you have time 🙇 ?

I don't think there is a mention about the condition you mentioned. I'll get @adamgrzybowski check on this condition statement.

@ntdiary  I think this was just overlooked in the process. You are right we should to check if the destination is the same as current topmost central pane.
We still need to have a separate check for Report route though. We can push multiple different report screens and in that case we need to compare reportID.

makes sense. @ntdiary if you still think @bernhardoj's proposal is the best, please post the approval comment 🙇

PR is ready
cc: @ntdiary

PR Merged and deployed to staging. Awaiting deploy to prod

Paid, @ntdiary can you complete the checklist? Thanks!

ahh, okay, works for me!

In that case the payment summary would be:
@ntdiary as C+ $500 - manual request
@bernhardoj as C $500

Given you'll be making a ND manual request and regression test is filed, closing! If you end up needing to be paid through Upwork, please reopen this.


Document how to use Dependency Injection (DI) for Actors

With this update, https://github.com/dapr/dotnet-sdk/issues/505, need to describe how dependency injection can be used with actors in the .NET docs

Doc added

Doc added


OpenGL rendering speed

The (backend) OpenGL renderer gets slowed down a number of ways.
Baseline framerate - 535 FPS to render one cube outline.

When the frontend application opens (on the same machine), drops FPS to 418.
When moving the RGBA + D buffers to a torch tensor (RGBA as char), drops FPS to 438.
When moving the RGBA + D buffers to a torch tensor (RGBA as float, drops FPS to 277.
With both (1) and (2), drops FPS to 345.
With both (1) and (3), drops FPS to 220.

Together, this means that per frame, just the OpenGL part is using 2.2-4.5ms, which is significant considering the gaussian model itself renders as fast as that, and must wait for this.
Will start by sending color data to GS CUDA kernels as uint8 instead of float32 to save time and memory.
In the future, could consider an in-kernel rendering of the OpenGL stuff we need.

Changed RGBA buffer to uint8