Why are mixins so flaky when it comes to versioning

[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.actuallyadditions.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.astralsorcery.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.bdsandm.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.bewitchment.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.carryon.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.champions.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.core.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.danknull.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.enderio.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.enderstorage.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.fluxnetworks.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.forge.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.immersiveengineering.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.integrateddynamicscompat.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.journeymap.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.kubejs.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.logisticspipes.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.matteroverdrive.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.morph.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.naturesaura.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/WARN]: Mixin config mixins.sledgehammer.platform.json requires mixin subsystem version 0.7.10 but 0.7.5 was found. The mixin config will not be applied.
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:199]: Failed to start Minecraft:
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launch:231]: java.lang.reflect.InvocationTargetException
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launch:231]: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launch:231]: 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launch:231]: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launch:231]: 	at java.lang.reflect.Method.invoke(Method.java:498)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launch:231]: 	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launch:231]: 	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launch:231]: 	at org.multimc.EntryPoint.listen(EntryPoint.java:143)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launch:231]: 	at org.multimc.EntryPoint.main(EntryPoint.java:34)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: Caused by: org.spongepowered.asm.launch.MixinInitialisationError: Required mixin config mixins.sledgehammer.platform.json requires mixin subsystem version 0.7.10
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at org.spongepowered.asm.mixin.transformer.MixinConfig.checkVersion(MixinConfig.java:417)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at org.spongepowered.asm.mixin.transformer.MixinConfig.onLoad(MixinConfig.java:331)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at org.spongepowered.asm.mixin.transformer.MixinConfig.create(MixinConfig.java:894)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at org.spongepowered.asm.mixin.transformer.Config.create(Config.java:116)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at org.spongepowered.asm.mixin.Mixins.createConfiguration(Mixins.java:91)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at org.spongepowered.asm.mixin.Mixins.addConfiguration(Mixins.java:78)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at org.spongepowered.asm.launch.platform.MixinPlatformManager.addConfig(MixinPlatformManager.java:282)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at org.spongepowered.asm.launch.platform.MixinPlatformAgentDefault.prepare(MixinPlatformAgentDefault.java:56)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at org.spongepowered.asm.launch.platform.MixinContainer.prepare(MixinContainer.java:103)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at org.spongepowered.asm.launch.platform.MixinPlatformManager.addContainer(MixinPlatformManager.java:146)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at org.spongepowered.asm.launch.platform.MixinPlatformManager.scanClasspath(MixinPlatformManager.java:230)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at org.spongepowered.asm.launch.platform.MixinPlatformManager.inject(MixinPlatformManager.java:199)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at org.spongepowered.asm.launch.MixinBootstrap.inject(MixinBootstrap.java:189)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at org.spongepowered.asm.launch.MixinTweaker.injectIntoClassLoader(MixinTweaker.java:62)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at net.minecraft.launchwrapper.Launch.launch(Launch.java:115)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[20:24:35] [main/INFO]: [org.multimc.onesix.OneSixLauncher:launchWithMainClass:200]: 	... 8 more
[20:24:35] [main/INFO]: [org.multimc.EntryPoint:main:37]: Exiting with -1
[20:24:35] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]: net.minecraftforge.fml.relauncher.FMLSecurityManager$ExitTrappedException
[20:24:35] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraftforge.fml.relauncher.FMLSecurityManager.checkPermission(FMLSecurityManager.java:49)
[20:24:35] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.lang.SecurityManager.checkExit(SecurityManager.java:761)
[20:24:35] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.lang.Runtime.exit(Runtime.java:107)
[20:24:35] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.lang.System.exit(System.java:971)
[20:24:35] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at org.multimc.EntryPoint.main(EntryPoint.java:38)
Exception in thread "main"
Process exited with code 1.

Im not using sponge, just the latest forge.

Can you please upload your debug.log or latest.log
According to what you have posted you are running a very old version of Mixin. You might be able to resolve the issue by renaming the Sledgehammer mod so the filename starts with an 'a' which should hopefully result in the Mixin shipping inside of Sledgehammer getting loaded instead of the ancient version.

I've renamed sledgehammer and that just causes another crash. Ive tried using the thin and sponge versions by actually installing sponge (as forgemod) but that just makes sponge ask for the same "clever rename trick".
 Is that literally the only solution? Is there no bootstrap for 1.12.2? Nearly every mod that uses mixins has a different version that doesnt work with any other mod using mixins and all of them want to load first to "work".
Why cant we all just go back to transforming classes with ASM. Sure its dirty, but it works better than this.

What is the error you are getting now? I have a feeling it might be the jar signing stopping it from loading.


move document type definitions to lib (shared folder)

Summary
Test Plan

Please consider the impact of your changes on the other developers.

#12  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @Silver-Sword and the rest of your teammates on  Graphite


Hard-Drop Bug

After a hard-drop, the tetrimino ghost does not work properly until another update

Change the ghost tetrimino functionality to use the playfield array


Repo github.com/crossplane/oam-controllers could NOT be found.

Like https://github.com/crossplane/addon-oam-kubernetes-local/blob/master/main.go#L30, repo github.com/crossplane/oam-controllers doesn't exists.
I think it might need to be replaced with https://github.com/crossplane/addon-oam-kubernetes-local

Using go mod like this can fix your problem:
module XXXX

go 1.13

require (
	github.com/crossplane/oam-controllers v0.0.0-00010101000000-000000000000
)

replace github.com/crossplane/oam-controllers => github.com/crossplane/addon-oam-kubernetes-local v0.0.0-20200522083149-1bc0918a6ce9

But I also agree that we should align with default conventions for GitHub go modules.

@ryanzhang-oss Please also help confirm it as the replacement is just my guessing:)


1.add tag and schema size limit 2.add some test code

Coverage increased (+2.7%) to 72.861% when pulling 291d30cbaceef311f7ebb788af1beefb4f46d686 on aseTo2016:master into 30f10f6477993708f56f942d3be0c74097427d94 on ServiceComb:master.

Codecov Report

Merging #83 into master will increase coverage by 2.55%.
The diff coverage is 73.77%.

@@            Coverage Diff             @@
##           master      #83      +/-   ##
==========================================
+ Coverage   65.56%   68.11%   +2.55%
==========================================
  Files           8       10       +2
  Lines        2744     2776      +32
==========================================
+ Hits         1799     1891      +92
+ Misses        821      753      -68
- Partials      124      132       +8

Impacted Files
Coverage Δ

server/service/instances.go
67.48% <100%> (+1.22%)
:arrow_up:

server/service/rule.go
73.22% <53.84%> (ø)

server/service/microservices.go
75.26% <73.33%> (+6.25%)
:arrow_up:

server/service/tag.go
73.78% <73.78%> (ø)

server/service/schema.go
75% <75%> (ø)

server/service/services_dependency.go
67.14% <0%> (-0.72%)
:arrow_down:

server/service/governservice.go
66.5% <0%> (+1.41%)
:arrow_up:

... and 1 more

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 30f10f6...291d30c. Read the comment docs.

Coverage increased (+2.8%) to 72.911% when pulling 679c728286199b4c4a084c222b63f27af6448e21 on aseTo2016:master into 30f10f6477993708f56f942d3be0c74097427d94 on ServiceComb:master.


No ControlNet option after extension install. MacBP Intel.

I have Auto... 1111 installed based on the fallowing tutorial.
https://www.youtube.com/watch?v=Jh-clc4jEvk&t=1s
Everything seems to work fine, I have not had a chance to test but basic txt2img works.
I fallowed another tutorial for ControlNet and everything seems to be fine, I get no errors.
The ControlNet section never loads on my 1111 UI. I disabled/reenabled it, tried to update it and restarted the UI several times.
I have uninstalled by deleting all files from repo and reinstalled with both the web UI and just DL the repo and adding it to extension folder.
I also tried to use the updated webui-user.sh file. Still no ControlNet section on my 1111 UI... =[
https://www.youtube.com/watch?v=YephV6ptxeQ&t=284s
This repo below has the same problem, extension loads without error but no ControlNet fly down in txt2img nor img2img.
https://github.com/Mikubill/sd-webui-controlnet
I was able to get Deforum working so extensions are working just not ControlNet.

This repository is not the ControlNet webui plugin. Try a clean install of auto1111 and follow the instructions at https://github.com/Mikubill/sd-webui-controlnet#install. Be sure the place the models in the appropriate folders.
Are you on macOS?

Yes Intel Mac.
I did try to install the Mikubill repo after this one did not work.
The clean install of 1111 did the trick.
I now have the ControlNet dropdown. =]
Thank you,
R


"fire station tok" does not find "Fire stations in Tokyo"

Despite:

Another one: "hocolate" does not find "chocolate"

I tried reproducing it on the latest branch and I got the category Fire stations in Tokyo when I typed exactly the same word. It didn't appear for these strings:

fire station in tokyo
Fire stations in tokyo
Fire station in Tokyo (removed "s" from stations)

I saw many issues that are related to fetching categories. Is it a good idea to add the task Fixing categorization to my GSoC proposal?

@rohit9625: Such error are not really a good fit for GSoC because it is often the upstream API's fault.

Okay 👍


Replaced Bootstrap tour by IntroJs in Reflection Activity

Migrated Reflection activity from Bootstrap Tour to IntroJs https://github.com/llaske/sugarizer/issues/1090

Hi @llaske , I have migrated Reflection Activity. Can you Please review ?

There is an issue, scrollbars appears on the board popup

My bad will look into it

Hi @llaske , I fixed the issue. Can you have a look.

Nice. Thanks.


Different classifier by test and by train

I wanted to as an F1 curve to the process so I could see when it would be best to stop training. I was able to do this in the test code but not in the training code.
Now I took a good look at model_classifier and saw that the input of this model was different in the two codes. In the training code you use img_input as an input

While in the test code you use feature_map_input as in input.

Would there be someone with any idea why this is happening and why you don't input the same thing in both models. It just doesn't makes sense to me since you would think that this needs to be the same model.

can you tell how did you do it in the test ?


Parallel chunks should support data driven tests

Proposing this as an enhancement, where data driven tests aren't split out when running in parallel mode.

this would be great


Very minor README change

Git command update in README: git_branch -> git_branches. The command in builtin shows the correct name already which is git_branches.

Ty! :)


fix: add letter spacing to transform as dimension token

Changes

Added letterSpacing to the group of tokens to be transformed with the new dimension value/unit pair.
Uncommented the tests for the various token types in plugin-css

How to Review
How can a reviewer review your changes? What should be kept in mind for this review?

Thanks for fixing! Will cut a release later


DOC: update docs for viewing Dashboard (#116)

Fixes #116

@raybellwaves do you plan to work on this again soon? Do you have any concern with my comments?
I'd like to move on here, and then add some lines on how to use nbserverproxy.

Thanks for the prompt. Sorry for the delayed response. I agree with your comments. I’ll work on this tonight

As there was still some misunderstanding here, and I could'nt see how to explain myself, I decided to push a new version on your branch @raybellwaves, hope it's OK for you.
There's a lot of modification actually, because I wanted to take into account your emphasis on Jupyter, but not leave the Dashboard without Jupyter solution behind.
I believe that the solution that works for you and you described here https://github.com/dask/dask-jobqueue/issues/116#issuecomment-410580753, using Jupyter to launch dask-jobqueue to get the scheduler IP and use that as an option to another jupyter launch is a bit complicated, and not required.
Happy to hear your opinion though, cc @lesteve and @jhamman.

Okay you were using simple python and not jupyter at first. Doesn't the solution with hostname command works for you?
Do not hesitate to review this and make some comment.

ping @jhamman @lesteve it would be good to have a review here!

I plan to get this in soon, as I believe there is some useful information in it, currently not really accessible in the docs, and to be able to move on #111 fix.
If there is some issue about the content, this can be addressed by later PR.


[ssr] Add basic event support

This is a start of what it would look like to add event support to SSR. It uses Node's Event and EventTarget classes and extends EventTarget to have a parent that it can dispatch to to implement bubbling. stopPropagation(), etc., should work, but aren't tested yet.
The big open questions are:

Can we have an event path of just the custom elements without materializing the built-ins that would be on the path with a full DOM structure? This seems ok if the only event patterns we support are for cross-custom-element communication, ie context.
Where do elements install event listeners? I added a call to connectedCallback() in here, but that only doesn't throw because none of the test elements do anything with the DOM in connectedCallback(). That wouldn't be viable in general.
Do we need to implement the capture phase?
How could we implement the proper composed path? We would need some concept of slotted elements being in the custom element instance stack.

Wonder if there's an alternative that would be more compatible with bring-your-own-shim and keeping the ElementRenderer just an interface where instead of requiring the instance to hook up the fake parent, we instead:

Add ElementRenderer:dispatchEvent (which in ours will just call instance.dispatchEvent()
Add a patch of dispatchEvent on whatever Element.prototype exists (either our dom shim, which would just have Element extend EventTarget, or a real DOM shim like jsdom, which would have a more correct implementation)
Our patch would super to the existing dispatchEvent, and then if it should bubble AND there's no this.parentNode (which is always the case in our DOM shim, and would be the case when using jsdom and you go up and hit a LitElementRenderer instance), then look in the (somehow-made-accessible) open custom elements stack and dispatch to the next element up.

It seems like that might avoid punting on ElementRenderer just yet.
We of course (maybe as part of this), should try running with a full DOM shim to make sure even the basic stuff works there, and specifically that event dispatch would work.

Pinging @nicholasrice from FAST to take a look. My cursory glance leads to me to think this will work for us as well.

I am definitely in support of exposing dispatchEvent. The largest use-case for us will be context and dependency-injection APIs. Our DI infrastructure already is implemented using events on the client, and we have a context-like feature that could be implemented on the server using events. We also have plans to implement general-purpose context APIs, which would obviously benefit as well.

Can we have an event path of just the custom elements without materializing the built-ins that would be on the path with a > full DOM structure? This seems ok if the only event patterns we support are for cross-custom-element communication, ie context.

I think this constraint is suitable for our implementations and the majority of our components. It seems in-line with other code we have that no-ops operations that would provide references to native elements, such as ref directives, slotted element inspection, etc.


map atmosphere reactions

About the PR
adds support for running reactions on planets, fire and maybe in the future fusion if you made a tritium planet
only enabled for exped planets currently since theres no other way to have plasma atmosphere planet
Why / Balance
volatile atmosphere + high temp being a fire planet makes sense, requires atmosias help or sending in a borg or something to safely do stuff
Technical details

bad
doesnt update the planets gas visuals so you cant actually see that its on fire
it doesnt light people on fire since thats a tile thing, would probably require copypasting a lot of stuff
dont know how to query all entities on a map but not on a shuttle grid

Media

[ ] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes
none
Changelog
:cl:

add: Added fun!
remove: Removed fun!
tweak: Changed fun!
fix: Fixed fun!

Conceptually I like this idea. It would, of course, be best to see the fire burn, so I hope you'll investigate this.
In technical details, I was really hoping you'd explain what precludes planet maps from reacting atmospheres right now; and how your change adds reacting atmospheres. I guess I'll have to go look.
Please adjust your changelog when ready for review.

previously only gridatmosphere had any processing done per tick, now at least reactions are done but implementing more would probably be a large copypaste job of atmos code
for visuals i still cant find what renders the mapatmos Mixture on every tile

previously only gridatmosphere had any processing done per tick, now at least reactions are done but implementing more would probably be a large copypaste job of atmos code for visuals i still cant find what renders the mapatmos Mixture on every tile

Why don't planet maps have GridAtmospheres?

because then lighting a cigarette would crash the server having it be a single tile is a good optimisation

cant do this


How to fetch only items that have a withRelated object that is not null?

Hi everyone. Apologies if this has already been asked, but I've done a decent amount of searching and haven't found my answer. Anyway, I have a parent table (Reference) and several child tables (Book, Journal, Conference, etc) each with special columns specific to that type of reference. I intend to have more objects related to my parent class as the app grows (e.g., a tagging system). The model for my Reference table is defined as:
module.exports = bookshelf.model('Reference', {
	tableName: 'reference',
	hasTimestamps: true,
	user: function() {
		return this.belongsTo('User');
	},
	book: function() {
		return this.hasOne('Book');
	},
	journal: function() {
		return this.hasOne('Journal');
	},
	conference: function() {
		return this.hasOne('Conference');
	}
});

And the child tables have the following models:
module.exports = bookshelf.model('Book', {
	tableName: 'book',
	hasTimestamps: true,
	reference: function() {
		return this.belongsTo('Reference');
	}
});

module.exports = bookshelf.model('Journal', {
	tableName: 'journal',
	hasTimestamps: true,
	reference: function() {
		return this.belongsTo('Reference');
	}
});

module.exports = bookshelf.model('Conference', {
	tableName: 'conference',
	hasTimestamps: true,
	reference: function() {
		return this.belongsTo('Reference');
	}
});

I am trying to use the withRelated property during my fetch, but I want to only return objects that actually have a corresponding child (essentially an inner join). For instance, I would like to return all objects that are Journals using the following code:
// Get all journal articles for a user
Reference.forge({
	user_id: 1
}).fetchAll({
	{withRelated: 'journal'}
}).then(function(references) {
	console.log(references.toJSON());
}).catch(function(error) {
	console.log(error);
});

This however will return all references belonging to a user even if the reference is not a journal article (there is no match on the Journal table, simply returns null for the field). How do I restrict this to return only objects that have a matching child element? Thanks in advance for any advice that you can offer.

I think you would be better off with a polymorphic relationship than with several hasOne that aren't the best choice according to what you're trying to achieve. With a polymorphic relationship you only have to store the type of reference in an attribute and the referenced element in another. So instead of having book, journal and conference attributes (which is also a very rigid schema, making future expansion of reference types harder), you would have referenceableType and referenceableId columns in your parent model. I think this should make it easier to achieve what you are after.
Take a look at the doc entry for the morphOne relation.

Closing this for lack of activity. If you feel like you didn't get your issue answered properly let us know and we'll reopen it.


how to implement tags in this library

Greetings
I tried to implement this library in a Laravel project, but I realized that it does not support tags, what would be needed for this library to implement the use of tags
Thanks

There is sadly no obvious way to handle tags with this library, especially if the fallback cache does not support tags.
If anyone has an idea on how to implement the cache tags, I'll be very happy to work on it.


[HANDS-ON BUG]

Describe the bug
Problem with Unit 3: Deep Q-Learning with Atari Games 👾 using RL Baselines3 Zoo
Hello, I have an issue with pushing the model to hub.
I execute the line:
!python -m rl_zoo3.push_to_hub  --algo dqn  --env SpaceInvadersNoFrameskip-v4  --repo-name dqn-SpaceInvadersNoFrameskip-v4  -orga execbat  -f logs/
Getting this:
Loading latest experiment, id=1 Loading logs/dqn/SpaceInvadersNoFrameskip-v4_1/SpaceInvadersNoFrameskip-v4.zip A.L.E: Arcade Learning Environment (version 0.8.1+53f58b7) [Powered by Stella] Stacking 4 frames Wrapping the env in a VecTransposeImage. Uploading to execbat/dqn-SpaceInvadersNoFrameskip-v4, make sure to have the rights ℹ This function will save, evaluate, generate a video of your agent, create a model card and push everything to the hub. It might take up to some minutes if video generation is activated. This is a work in progress: if you encounter a bug, please open an issue. /home/evgenii/anaconda3/envs/huggingface/lib/python3.9/site-packages/huggingface_hub/utils/_deprecation.py:131: FutureWarning: 'Repository' (from 'huggingface_hub.repository') is deprecated and will be removed from version '1.0'. Please prefer the http-based alternatives instead. Given its large adoption in legacy code, the complete removal is only planned on next major release. For more details, please read https://huggingface.co/docs/huggingface_hub/concepts/git_vs_http.   warnings.warn(warning_message, FutureWarning) Cloning https://huggingface.co/execbat/dqn-SpaceInvadersNoFrameskip-v4 into local empty directory. WARNING:huggingface_hub.repository:Cloning https://huggingface.co/execbat/dqn-SpaceInvadersNoFrameskip-v4 into local empty directory. Saving model to: hub/dqn-SpaceInvadersNoFrameskip-v4/dqn-SpaceInvadersNoFrameskip-v4 Traceback (most recent call last):   File "/home/evgenii/anaconda3/envs/huggingface/lib/python3.9/runpy.py", line 197, in _run_module_as_main     return _run_code(code, main_globals, None,   File "/home/evgenii/anaconda3/envs/huggingface/lib/python3.9/runpy.py", line 87, in _run_code     exec(code, run_globals)   File "/home/evgenii/anaconda3/envs/huggingface/lib/python3.9/site-packages/rl_zoo3/push_to_hub.py", line 398, in <module>     package_to_hub(   File "/home/evgenii/anaconda3/envs/huggingface/lib/python3.9/site-packages/rl_zoo3/push_to_hub.py", line 247, in package_to_hub     _generate_replay(model, eval_env, video_length, is_deterministic, repo_local_path)   File "/home/evgenii/anaconda3/envs/huggingface/lib/python3.9/site-packages/huggingface_sb3/push_to_hub.py", line 133, in _generate_replay     env = VecVideoRecorder(   File "/home/evgenii/anaconda3/envs/huggingface/lib/python3.9/site-packages/stable_baselines3/common/vec_env/vec_video_recorder.py", line 52, in __init__     assert self.env.render_mode == "rgb_array", f"The render_mode must be 'rgb_array', not {self.env.render_mode}" AssertionError: The render_mode must be 'rgb_array', not human Exception ignored in: <function VecVideoRecorder.__del__ at 0x73db523815e0> Traceback (most recent call last):   File "/home/evgenii/anaconda3/envs/huggingface/lib/python3.9/site-packages/stable_baselines3/common/vec_env/vec_video_recorder.py", line 113, in __del__     self.close_video_recorder()   File "/home/evgenii/anaconda3/envs/huggingface/lib/python3.9/site-packages/stable_baselines3/common/vec_env/vec_video_recorder.py", line 103, in close_video_recorder     if self.recording:   File "/home/evgenii/anaconda3/envs/huggingface/lib/python3.9/site-packages/stable_baselines3/common/vec_env/base_vec_env.py", line 420, in __getattr__     return self.getattr_recursive(name)   File "/home/evgenii/anaconda3/envs/huggingface/lib/python3.9/site-packages/stable_baselines3/common/vec_env/base_vec_env.py", line 443, in getattr_recursive     attr = self.venv.getattr_recursive(name)   File "/home/evgenii/anaconda3/envs/huggingface/lib/python3.9/site-packages/stable_baselines3/common/vec_env/base_vec_env.py", line 445, in getattr_recursive     attr = getattr(self.venv, name) AttributeError: 'DummyVecEnv' object has no attribute 'recording'
So I don;t know how to get the replay file and push altogether to my huggingface repository.
Please help.
unit3.zip
Material
I made it in conda env on my laptop. env built on python 3.9.18
-OS: Ubuntu 22.04.3 LTS

OS type: 64-bit
Processor: Intel® Core™ i9-9880H CPU @ 2.30GHz × 8

I'm having the very same problem, but i'm running the notebook on Google Colab, with the suggested GPU.

Also having the same problem. Running the notebook on Google Colab using the t4. Training works fine but when pushing to the hub my model card is also blank.
input
!python -m rl_zoo3.push_to_hub --algo dqn  --env SpaceInvadersNoFrameskip-v4  --repo-name dqn-SpaceInvadersNoFrameskip-v4-2 -orga cgwell -f logs/
output
2024-06-30 01:40:27.852357: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
2024-06-30 01:40:27.852414: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered
2024-06-30 01:40:27.948812: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
2024-06-30 01:40:27.956169: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 AVX512F FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2024-06-30 01:40:29.011445: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
Loading latest experiment, id=4
Loading logs/dqn/SpaceInvadersNoFrameskip-v4_4/SpaceInvadersNoFrameskip-v4.zip
A.L.E: Arcade Learning Environment (version 0.8.1+53f58b7)
[Powered by Stella]
Stacking 4 frames
Wrapping the env in a VecTransposeImage.
Uploading to cgwell/dqn-SpaceInvadersNoFrameskip-v4-2, make sure to have the rights
ℹ This function will save, evaluate, generate a video of your agent,
create a model card and push everything to the hub. It might take up to some
minutes if video generation is activated. This is a work in progress: if you
encounter a bug, please open an issue.
/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_deprecation.py:131: FutureWarning: 'Repository' (from 'huggingface_hub.repository') is deprecated and will be removed from version '1.0'. Please prefer the http-based alternatives instead. Given its large adoption in legacy code, the complete removal is only planned on next major release.
For more details, please read https://huggingface.co/docs/huggingface_hub/concepts/git_vs_http.
warnings.warn(warning_message, FutureWarning)
Cloning https://huggingface.co/cgwell/dqn-SpaceInvadersNoFrameskip-v4-2 into local empty directory.
WARNING:huggingface_hub.repository:Cloning https://huggingface.co/cgwell/dqn-SpaceInvadersNoFrameskip-v4-2 into local empty directory.
Saving model to: hub/dqn-SpaceInvadersNoFrameskip-v4-2/dqn-SpaceInvadersNoFrameskip-v4
Traceback (most recent call last):
File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/usr/local/lib/python3.10/dist-packages/rl_zoo3/push_to_hub.py", line 398, in
package_to_hub(
File "/usr/local/lib/python3.10/dist-packages/rl_zoo3/push_to_hub.py", line 247, in package_to_hub
_generate_replay(model, eval_env, video_length, is_deterministic, repo_local_path)
File "/usr/local/lib/python3.10/dist-packages/huggingface_sb3/push_to_hub.py", line 133, in _generate_replay
env = VecVideoRecorder(
File "/usr/local/lib/python3.10/dist-packages/stable_baselines3/common/vec_env/vec_video_recorder.py", line 52, in init
assert self.env.render_mode == "rgb_array", f"The render_mode must be 'rgb_array', not {self.env.render_mode}"
AssertionError: The render_mode must be 'rgb_array', not human
Exception ignored in: <function VecVideoRecorder.del at 0x7c8d835f37f0>
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/stable_baselines3/common/vec_env/vec_video_recorder.py", line 113, in del
self.close_video_recorder()
File "/usr/local/lib/python3.10/dist-packages/stable_baselines3/common/vec_env/vec_video_recorder.py", line 103, in close_video_recorder
if self.recording:
File "/usr/local/lib/python3.10/dist-packages/stable_baselines3/common/vec_env/base_vec_env.py", line 420, in getattr
return self.getattr_recursive(name)
File "/usr/local/lib/python3.10/dist-packages/stable_baselines3/common/vec_env/base_vec_env.py", line 443, in getattr_recursive
attr = self.venv.getattr_recursive(name)
File "/usr/local/lib/python3.10/dist-packages/stable_baselines3/common/vec_env/base_vec_env.py", line 445, in getattr_recursive
attr = getattr(self.venv, name)
AttributeError: 'DummyVecEnv' object has no attribute 'recording'`

Solved, in case it might be useful.
Because of error AssertionError: The render_mode must be 'rgb_array', not human I tried to pass 'rgb_array' mode as an argument into constructor of 'create_test_env()'.
In general the --render-mode rgb_array argument should be passed when calling rl_zoo3/push_to_hub, so you might just add
parser.add_argument("--render-mode", default= 'human', type=str) into argument parser of rl_zoo3/push_to_hub script.
OR just amend rl_zoo3/utils.py:
Make
if "render_mode" not in env_kwargs and should_render:
env_kwargs.update(render_mode="rgb_array")
Instead of
if "render_mode" not in env_kwargs and should_render:
env_kwargs.update(render_mode="human")
Hope that will help

This script creates a "hub" folder, which can be saved to a drive. However, using push_to_hub currently results in an infinite loop and fails to upload all the files to Hugging Face, resulting in an empty model card.
To work around this issue, manually upload the files from the "hub" folder to Hugging Face. Here is an example output when running the command:
!python -m rl_zoo3.push_to_hub  --algo dqn  --env SpaceInvadersNoFrameskip-v4   --verbose 1  --repo-name dqn-SpaceInvadersNoFrameskip-v4  -orga {your_huggingface_nick}  -f logs/   --env-kwargs  'render_mode:"rgb_array"'
`
2024-07-01 19:40:29.029621: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
2024-07-01 19:40:29.029671: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered
2024-07-01 19:40:29.031362: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
2024-07-01 19:40:29.038380: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2024-07-01 19:40:30.133283: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
Loading latest experiment, id=1
Loading logs/dqn/SpaceInvadersNoFrameskip-v4_1/SpaceInvadersNoFrameskip-v4.zip
A.L.E: Arcade Learning Environment (version 0.8.1+53f58b7)
[Powered by Stella]
Stacking 4 frames
Wrapping the env in a VecTransposeImage.
Uploading to cgwell/dqn-SpaceInvadersNoFrameskip-v4, make sure to have the rights
ℹ This function will save, evaluate, generate a video of your agent,
create a model card and push everything to the hub. It might take up to some
minutes if video generation is activated. This is a work in progress: if you
encounter a bug, please open an issue.
/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_deprecation.py:131: FutureWarning: 'Repository' (from 'huggingface_hub.repository') is deprecated and will be removed from version '1.0'. Please prefer the http-based alternatives instead. Given its large adoption in legacy code, the complete removal is only planned on next major release.
For more details, please read https://huggingface.co/docs/huggingface_hub/concepts/git_vs_http.
warnings.warn(warning_message, FutureWarning)
Cloning https://huggingface.co/cgwell/dqn-SpaceInvadersNoFrameskip-v4 into local empty directory.
WARNING:huggingface_hub.repository:Cloning https://huggingface.co/cgwell/dqn-SpaceInvadersNoFrameskip-v4 into local empty directory.
Saving model to: hub/dqn-SpaceInvadersNoFrameskip-v4/dqn-SpaceInvadersNoFrameskip-v4
/usr/local/lib/python3.10/dist-packages/gymnasium/utils/passive_env_checker.py:335: UserWarning: WARN: No render fps was declared in the environment (env.metadata['render_fps'] is None or not defined), rendering may occur at inconsistent fps.
logger.warn(
Saving video to /tmp/tmp89m9ips1/-step-0-to-step-1000.mp4
Moviepy - Building video /tmp/tmp89m9ips1/-step-0-to-step-1000.mp4.
Moviepy - Writing video /tmp/tmp89m9ips1/-step-0-to-step-1000.mp4
Moviepy - Done !
Moviepy - video ready /tmp/tmp89m9ips1/-step-0-to-step-1000.mp4
ffmpeg version 4.4.2-0ubuntu<IP_ADDRESS> Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
configuration: --prefix=/usr --extra-version=0ubuntu<IP_ADDRESS> --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil      56. 70.100 / 56. 70.100
libavcodec     58.134.100 / 58.134.100
libavformat    58. 76.100 / 58. 76.100
libavdevice    58. 13.100 / 58. 13.100
libavfilter     7.110.100 /  7.110.100
libswscale      5.  9.100 /  5.  9.100
libswresample   3.  9.100 /  3.  9.100
libpostproc    55.  9.100 / 55.  9.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/tmp89m9ips1/-step-0-to-step-1000.mp4':
Metadata:
major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
encoder         : Lavf58.29.100
Duration: 00:00:33.40, start: 0.000000, bitrate: 49 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 160x210, 46 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name    : VideoHandler
vendor_id       : [0][0][0][0]
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0x5a4a004fa640] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x5a4a004fa640] profile High, level 1.2, 4:2:0, 8-bit
[libx264 @ 0x5a4a004fa640] 264 - core 163 r3060 5db6aa6 - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'hub/dqn-SpaceInvadersNoFrameskip-v4/replay.mp4':
Metadata:
major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
encoder         : Lavf58.76.100
Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 160x210, q=2-31, 30 fps, 15360 tbn (default)
Metadata:
handler_name    : VideoHandler
vendor_id       : [0][0][0][0]
encoder         : Lavc58.134.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame= 1002 fps=0.0 q=-1.0 Lsize=     193kB time=00:00:33.30 bitrate=  47.4kbits/s speed=42.7x
video:182kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 5.924415%
[libx264 @ 0x5a4a004fa640] frame I:5     Avg QP:16.02  size:  2571
[libx264 @ 0x5a4a004fa640] frame P:521   Avg QP:23.15  size:   283
[libx264 @ 0x5a4a004fa640] frame B:476   Avg QP:29.96  size:    53
[libx264 @ 0x5a4a004fa640] consecutive B-frames: 30.2% 16.2%  9.3% 44.3%
[libx264 @ 0x5a4a004fa640] mb I  I16..4: 23.6% 40.3% 36.1%
[libx264 @ 0x5a4a004fa640] mb P  I16..4:  0.5%  1.0%  0.7%  P16..4:  6.0%  2.5%  1.4%  0.0%  0.0%    skip:88.0%
[libx264 @ 0x5a4a004fa640] mb B  I16..4:  0.2%  0.1%  0.1%  B16..8:  8.9%  1.0%  0.1%  direct: 0.1%  skip:89.6%  L0:51.3% L1:48.2% BI: 0.5%
[libx264 @ 0x5a4a004fa640] 8x8 transform intra:42.9% inter:6.2%
[libx264 @ 0x5a4a004fa640] coded y,uvDC,uvAC intra: 20.1% 35.7% 32.0% inter: 1.3% 1.6% 1.3%
[libx264 @ 0x5a4a004fa640] i16 v,h,dc,p: 43% 52%  5%  0%
[libx264 @ 0x5a4a004fa640] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24%  8% 67%  1%  0%  0%  0%  0%  0%
[libx264 @ 0x5a4a004fa640] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 33% 13% 43%  2%  1%  3%  2%  2%  1%
[libx264 @ 0x5a4a004fa640] i8c dc,h,v,p: 57% 29% 13%  1%
[libx264 @ 0x5a4a004fa640] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x5a4a004fa640] ref P L0: 75.9%  5.2% 10.8%  8.1%
[libx264 @ 0x5a4a004fa640] ref B L0: 82.1% 15.7%  2.2%
[libx264 @ 0x5a4a004fa640] ref B L1: 96.3%  3.7%
[libx264 @ 0x5a4a004fa640] kb/s:44.45
ℹ Pushing repo dqn-SpaceInvadersNoFrameskip-v4 to the Hugging Face
Hub
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/huggingface_hub/repository.py", line 418, in _lfs_log_progress
yield
File "/usr/local/lib/python3.10/dist-packages/huggingface_hub/repository.py", line 1109, in git_push
stdout, stderr = process.communicate()
File "/usr/lib/python3.10/subprocess.py", line 1154, in communicate
stdout, stderr = self._communicate(input, endtime, timeout)
File "/usr/lib/python3.10/subprocess.py", line 2021, in _communicate
ready = selector.select(timeout)
File "/usr/lib/python3.10/selectors.py", line 416, in select
fd_event_list = self._selector.poll(timeout)
KeyboardInterrupt
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/usr/local/lib/python3.10/dist-packages/rl_zoo3/push_to_hub.py", line 398, in
package_to_hub(
File "/usr/local/lib/python3.10/dist-packages/rl_zoo3/push_to_hub.py", line 272, in package_to_hub
repo.push_to_hub(commit_message=commit_message)
File "/usr/local/lib/python3.10/dist-packages/huggingface_hub/repository.py", line 1325, in push_to_hub
return self.git_push(
File "/usr/local/lib/python3.10/dist-packages/huggingface_hub/repository.py", line 1099, in git_push
with _lfs_log_progress():
File "/usr/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.10/dist-packages/huggingface_hub/repository.py", line 421, in _lfs_log_progress
x.join()
File "/usr/lib/python3.10/threading.py", line 1096, in join
self._wait_for_tstate_lock()
File "/usr/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
if lock.acquire(block, timeout):
KeyboardInterrupt
`

Hi, which version of RL Baselines Zoo did you installed? I'm checking but it should work with the main version.
I'm investigating that today and keep you updated 🤔

Hi indeed it was a problem with the version of RL Zoo I just updated the notebook and you should install instead:
!pip install git+https://github.com/DLR-RM/rl-baselines3-zoo

Thanks @simoninithomas! In fact, i was using the 2.0.0a9v, but now with the main one it worked ☺

Hi, I'm facing a different error email error when running the following command. I'm not so sure how what triggered it, all the previous hands-on were fine.
!python -m rl_zoo3.push_to_hub  --algo dqn  --env SpaceInvadersNoFrameskip-v4  --repo-name dqn-SpaceInvadersNoFrameskip-v4  -orga ValentinGuigon  -f logs/
Here is the output:
2024-07-08 02:57:35.221860: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered 2024-07-08 02:57:35.221925: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered 2024-07-08 02:57:35.223584: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered 2024-07-08 02:57:35.232245: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations. To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags. 2024-07-08 02:57:37.269536: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT Loading latest experiment, id=2 Loading logs/dqn/SpaceInvadersNoFrameskip-v4_2/SpaceInvadersNoFrameskip-v4.zip A.L.E: Arcade Learning Environment (version 0.8.1+53f58b7) [Powered by Stella] Stacking 4 frames Wrapping the env in a VecTransposeImage. Uploading to ValentinGuigon/dqn-SpaceInvadersNoFrameskip-v4, make sure to have the rights ℹ This function will save, evaluate, generate a video of your agent, create a model card and push everything to the hub. It might take up to some minutes if video generation is activated. This is a work in progress: if you encounter a bug, please open an issue. /usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_deprecation.py:131: FutureWarning: 'Repository' (from 'huggingface_hub.repository') is deprecated and will be removed from version '1.0'. Please prefer the http-based alternatives instead. Given its large adoption in legacy code, the complete removal is only planned on next major release. For more details, please read https://huggingface.co/docs/huggingface_hub/concepts/git_vs_http.   warnings.warn(warning_message, FutureWarning) /content/hub/dqn-SpaceInvadersNoFrameskip-v4 is already a clone of https://huggingface.co/ValentinGuigon/dqn-SpaceInvadersNoFrameskip-v4. Make sure you pull the latest changes with repo.git_pull(). WARNING:huggingface_hub.repository:/content/hub/dqn-SpaceInvadersNoFrameskip-v4 is already a clone of https://huggingface.co/ValentinGuigon/dqn-SpaceInvadersNoFrameskip-v4. Make sure you pull the latest changes with repo.git_pull(). Traceback (most recent call last):   File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main     return _run_code(code, main_globals, None,   File "/usr/lib/python3.10/runpy.py", line 86, in _run_code     exec(code, run_globals)   File "/usr/local/lib/python3.10/dist-packages/rl_zoo3/push_to_hub.py", line 410, in <module>     package_to_hub(   File "/usr/local/lib/python3.10/dist-packages/rl_zoo3/push_to_hub.py", line 201, in package_to_hub     repo = Repository(repo_local_path, clone_from=repo_url)   File "/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_validators.py", line 114, in _inner_fn     return fn(*args, **kwargs)   File "/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_deprecation.py", line 132, in inner_f     return f(*args, **kwargs)   File "/usr/local/lib/python3.10/dist-packages/huggingface_hub/repository.py", line 545, in __init__     git_email = user["email"] KeyError: 'email'


Add affordance to indicate users can navigate within blocks

During user testing, it was noted in many cases that the user did not realise they could use the right arrow key to navigate to the fields and inputs of the block the cursor was on.
It was suggested that we should provide some kind of affordance to make it clear that they can navigate within the block using the right arrow key.  Ideas mooted included:

Have the enter key move to the first field of the block, or open a menu of suitable actions (e.g. "replace this block", "edit block settings").
Display a tooltip or other pop-up hint ("press right to access contents ->"?) to indicate it is possible to access the contents of the block.

Display of such hints could be disabled after the first time they are successfully applied.

See also #104.

Based on post-testing conversations this is nominally a fairly high-piority item (I've categorised as P1), but as I'm not sure exactly what form this affordance should take I'm not sure how to proceed.

It is planned to resolve this via an "edit contents" item in the context menu (see #132), which will be displayed when the user presses enter while focus is on a block (see #130).


Unable to install - Unable to load configuration flow: undefined

What version of Music Assistant has the issue?
2022.6.4
The problem
I´m unable to install MusicAssistant, Im adding it via HACS, and after I restarted and I went to add the Integration the error "Unable to load configuration flow: undefined" is being shown. (Not sure if translated correctly, as it displays in my native language). I also tried to remove it from HACS, restart, re-install from HACS but the same result. I was not able to find any issue even simillar to mine here on Github.
Thanks for any help.
How to reproduce
Added Music Assistant via HACS
Restarted HASS
Tried to add Integration via the Integrations Page
Relevant log output
Logger: homeassistant.util.package
Source: util/package.py:99
First occurred: 22:03:11 (3 occurrences)
Last logged: 22:05:39
Unable to install package music-assistant==1.4.5: error: subprocess-exited-with-error × python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [76 lines of output] running bdist_wheel running build running build_py creating build creating build/lib.linux-aarch64-cpython-39 creating build/lib.linux-aarch64-cpython-39/greenlet copying src/greenlet/init.py -> build/lib.linux-aarch64-cpython-39/greenlet creating build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_weakref.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_version.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_tracing.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_throw.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_stack_saved.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_leaks.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_greenlet.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_generator_nested.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_generator.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_gc.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_extension_interface.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_cpp.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_contextvars.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/init.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests running egg_info writing src/greenlet.egg-info/PKG-INFO writing dependency_links to src/greenlet.egg-info/dependency_links.txt writing requirements to src/greenlet.egg-info/requires.txt writing top-level names to src/greenlet.egg-info/top_level.txt reading manifest file 'src/greenlet.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' no previously-included directories found matching 'docs/_build' warning: no files found matching '.py' under directory 'appveyor' warning: no previously-included files matching '.pyc' found anywhere in distribution warning: no previously-included files matching '.pyd' found anywhere in distribution warning: no previously-included files matching '.so' found anywhere in distribution warning: no previously-included files matching '.coverage' found anywhere in distribution adding license file 'LICENSE' adding license file 'LICENSE.PSF' adding license file 'AUTHORS' writing manifest file 'src/greenlet.egg-info/SOURCES.txt' copying src/greenlet/greenlet.c -> build/lib.linux-aarch64-cpython-39/greenlet copying src/greenlet/greenlet.h -> build/lib.linux-aarch64-cpython-39/greenlet copying src/greenlet/slp_platformselect.h -> build/lib.linux-aarch64-cpython-39/greenlet creating build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/setup_switch_x64_masm.cmd -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_aarch64_gcc.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_alpha_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_amd64_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_arm32_gcc.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_arm32_ios.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_csky_gcc.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_m68k_gcc.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_mips_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_ppc64_aix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_ppc64_linux.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_ppc_aix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_ppc_linux.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_ppc_macosx.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_ppc_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_riscv_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_s390_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_sparc_sun_gcc.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_x32_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_x64_masm.asm -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_x64_masm.obj -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_x64_msvc.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_x86_msvc.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_x86_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/tests/_test_extension.c -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/_test_extension_cpp.cpp -> build/lib.linux-aarch64-cpython-39/greenlet/tests running build_ext building 'greenlet._greenlet' extension creating build/temp.linux-aarch64-cpython-39 creating build/temp.linux-aarch64-cpython-39/src creating build/temp.linux-aarch64-cpython-39/src/greenlet gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fno-semantic-interposition -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -DTHREAD_STACK_SIZE=0x100000 -fPIC -I/usr/local/include/python3.9 -c src/greenlet/greenlet.c -o build/temp.linux-aarch64-cpython-39/src/greenlet/greenlet.o error: command 'gcc' failed: No such file or directory [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for greenlet error: subprocess-exited-with-error × Running setup.py install for greenlet did not run successfully. │ exit code: 1 ╰─> [78 lines of output] running install /usr/local/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. warnings.warn( running build running build_py creating build creating build/lib.linux-aarch64-cpython-39 creating build/lib.linux-aarch64-cpython-39/greenlet copying src/greenlet/init.py -> build/lib.linux-aarch64-cpython-39/greenlet creating build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_weakref.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_version.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_tracing.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_throw.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_stack_saved.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_leaks.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_greenlet.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_generator_nested.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_generator.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_gc.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_extension_interface.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_cpp.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/test_contextvars.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/init.py -> build/lib.linux-aarch64-cpython-39/greenlet/tests running egg_info writing src/greenlet.egg-info/PKG-INFO writing dependency_links to src/greenlet.egg-info/dependency_links.txt writing requirements to src/greenlet.egg-info/requires.txt writing top-level names to src/greenlet.egg-info/top_level.txt reading manifest file 'src/greenlet.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' no previously-included directories found matching 'docs/_build' warning: no files found matching '.py' under directory 'appveyor' warning: no previously-included files matching '.pyc' found anywhere in distribution warning: no previously-included files matching '.pyd' found anywhere in distribution warning: no previously-included files matching '.so' found anywhere in distribution warning: no previously-included files matching '.coverage' found anywhere in distribution adding license file 'LICENSE' adding license file 'LICENSE.PSF' adding license file 'AUTHORS' writing manifest file 'src/greenlet.egg-info/SOURCES.txt' copying src/greenlet/greenlet.c -> build/lib.linux-aarch64-cpython-39/greenlet copying src/greenlet/greenlet.h -> build/lib.linux-aarch64-cpython-39/greenlet copying src/greenlet/slp_platformselect.h -> build/lib.linux-aarch64-cpython-39/greenlet creating build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/setup_switch_x64_masm.cmd -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_aarch64_gcc.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_alpha_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_amd64_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_arm32_gcc.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_arm32_ios.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_csky_gcc.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_m68k_gcc.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_mips_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_ppc64_aix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_ppc64_linux.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_ppc_aix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_ppc_linux.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_ppc_macosx.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_ppc_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_riscv_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_s390_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_sparc_sun_gcc.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_x32_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_x64_masm.asm -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_x64_masm.obj -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_x64_msvc.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_x86_msvc.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/platform/switch_x86_unix.h -> build/lib.linux-aarch64-cpython-39/greenlet/platform copying src/greenlet/tests/_test_extension.c -> build/lib.linux-aarch64-cpython-39/greenlet/tests copying src/greenlet/tests/_test_extension_cpp.cpp -> build/lib.linux-aarch64-cpython-39/greenlet/tests running build_ext building 'greenlet._greenlet' extension creating build/temp.linux-aarch64-cpython-39 creating build/temp.linux-aarch64-cpython-39/src creating build/temp.linux-aarch64-cpython-39/src/greenlet gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fno-semantic-interposition -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -DTHREAD_STACK_SIZE=0x100000 -fPIC -I/usr/local/include/python3.9 -c src/greenlet/greenlet.c -o build/temp.linux-aarch64-cpython-39/src/greenlet/greenlet.o error: command 'gcc' failed: No such file or directory [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: legacy-install-failure × Encountered error while trying to install package. ╰─> greenlet note: This is an issue with the package mentioned above, not pip. hint: See above for output from the failure. WARNING: You are using pip version 22.0.3; however, version 22.1.2 is available. You should consider upgrading via the '/usr/local/bin/python3 -m pip install --upgrade pip' command.
Additional information
I have spotcast and spotify integration added.
Version | core-2022.6.4
Installation Type | Home Assistant Supervised
Development | false
Supervisor | true
Docker | true
User | root
Virtual Environment | false
Python Version | 3.9.12
Operating System Family | Linux
Operating System Version | 5.10.60-v8+
CPU Architecture | aarch64
Timezone | Europe/Warsaw
Host Operating System | Raspbian GNU/Linux 10 (buster)
Update Channel | stable
Supervisor Version | supervisor-2022.05.3
Agent Version |
Docker Version | 20.10.8
What version of Home Assistant Core are your running
2022.6.4
What type of installation are you running?
Home Assistant Supervised
On what type of hardware are you running?
Raspberry Pi

I have spotcast and spotify integration added.

Those co-exist just fine.
Most likely this is related to your Supervised install. Wait for Marcel to look into your error.

You are running an unsupported installation of Home Assistant, I think you will see that in big red letters on the device info page. This error means that a dependency (greenlet) can not be found nor built for your installation. You will have to compile that yourself if you want to make it work.
I can't help you with that, sorry.
I see you run a raspberry pi. I'd recommend to just install HAOS on it and save yourself a whole lot of trouble.

Hi, on my raspberry with HA core in docker I have a similar error. The problem (visible int the log :  command 'gcc' failed: No such file or directory) was that I needed to install gcc and some other dependencies in the docker container.
I am using portainer, I just opened the HA container console, it is based on alpine linux so I started the installation with
apk update
apk add build-base

After the reboot, I restart the Music Assistant installation successfully.
I hope this helps someone


Add user defined tags to Tests.Group to allow for better concurrency control

Thanks in advance for taking the time to consider and review this PR!
This work adds the ability to custom tag a test Group so that different limitations can be set for different forked jvms.
Currently, if one wants to provide different forked JVMs with different amounts of memory and also limit the total memory allocated at any one time, you have to resort to different configurations. With this PR the following can instead be done:

val ForkedMemory = Tags.Tag("ForkedMem")
val MaxForkedMemory = 12 // Max amount of memory available in the container
Global / concurrentRestrictions := Seq(
  Tags.limit(ForkedMemory, MaxForkMemory)
)

Test / testGrouping := {
  Test / definedTests.value.map { test =>

    val testMem = if (test.name.contains("BigTest")) 4 else 2

    Tests.Group(
        name  = test.name,
        tests = Seq(test),
        runPolicy = Tests.SubProcess(
          ForkOptions()
            .withWorkingDirectory(baseDirectory.value)
            .withRunJVMOptions(
              Vector(s"-XX:MaxRAM=${testMem}g")
            )
        ),
        tags = Seq(ForkedMemory -> testMem)
    )
  }
}

Note, the scripted tests are very similar to the currently disabled fork-test-group-parallel and may therefore suffer from the same problem in CI. However, they both pass locally.

It is not obvious to me how to implement this in a binary compatible way or if that is even possible. What is the process for bincompat breaking changes?

It is not obvious to me how to implement this in a binary compatible way or if that is even possible. What is the process for bincompat breaking changes?

I created Contraband so we can evolve datatypes, but unfortunately there seems to be many case classes remaining. It's not impossible to add a field to an existing case class. You basically have to reimplement all the previously generated code by hand. See https://github.com/sbt/sbt/commit/b77b0e161ea4e660c318370b947d1b6010b3fad8#diff-53b597b9356cb88766a8b6420543f652 and https://github.com/sbt/sbt/commit/a6f04cf53b4ca64566a24591920f1769d710cb52#diff-53b597b9356cb88766a8b6420543f652.

@eed3si9n Got through the bin compat issues thanks to your pointers! The PR is significantly uglier but I guess that's how it goes.
Is it possible to transition Tests.Group to Contraband in a bincompat way? I'm happy to put in the effort if this feature is deemed useful.

Is it possible to transition Tests.Group to Contraband in a bincompat way?

I don't think it's possible because Group exists within Tests object and I don't we can codegen our way through.

@eed3si9n Thanks again for your time reviewing this! I've rebased on develop to fix the build and all checks are passing now.


[2.x] Make it possible to dynamically register resources based on user

Discussed in https://github.com/filamentphp/filament/discussions/4173

Originally posted by enso-media September 23, 2022
Right now its not possible to register different resources based on specific user roles.
The user data is only available when the StartSession middleware was executed, however registration of filament resources is only possible early from within a service provider which runs before.
Trying to use Filament::registerResource() at later times, will result in "route not defined" errors.

I have make something like this,
It was my client requirements to manage navigation menu, It may not prevent registering the resource , but navigation menu can be manipulated.
Here is a link of a video of this.
https://drive.google.com/file/d/1ulLsGdR5nVsz1g2XVAzpqC6gBVZd6fbE/view?usp=sharing

but navigation menu can be manipulated.
Sure, this is already possible out of the box with the NavigationBuilder.

However i need completely separated resources, pages and functions for specific application scopes and roles (admin/tenant/user).
We already have methods for this like registerResources, registerPages and registerWidgets. The issue is just that you cannot use those methods later, as the filament routes get generated separately already from within the register method in the service provider.

I personally think this is the missing piece for filament. I will try and make use of plugins for now

Completed now, it will be available in v3 :)


running system-manager switch kicks me out of desktop environment

Describe the bug

Every time I run system-manager switch --flake . I get kicked out of my desktop environment.
Looks like system-manager is restarting sysinit.target which is booting me out of my desktop environment.
System information

aaron@inspiron-5765 ~> cat /etc/os-release
PRETTY_NAME="Ubuntu 22.10"
NAME="Ubuntu"
VERSION_ID="22.10"
VERSION="22.10 (Kinetic Kudu)"
VERSION_CODENAME=kinetic
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=kinetic
LOGO=ubuntu-logo

Additional context

Logs from system-manager switch:
[2023-04-07T16:25:13Z INFO  system_manager::generate] Trying flake URI: .#systemConfigs.inspiron-5765...
[2023-04-07T16:25:13Z INFO  system_manager::generate] Attribute .#systemConfigs.inspiron-5765 not found in flake.
[2023-04-07T16:25:13Z INFO  system_manager::generate] Trying flake URI: .#systemConfigs.default...
[2023-04-07T16:25:13Z INFO  system_manager::generate] Success, using .#systemConfigs.default
[2023-04-07T16:25:13Z INFO  system_manager::generate] Building new system-manager generation...
[2023-04-07T16:25:13Z INFO  system_manager::generate] Running nix build...
warning: Git tree '/home/aaron/nixos' is dirty
[2023-04-07T16:25:13Z INFO  system_manager::generate] Build system-manager profile /nix/store/09qp4fsq00sp7imd4licp7wwr0hamqab-system-manager
[2023-04-07T16:25:13Z INFO  system_manager::generate] Creating new generation from /nix/store/09qp4fsq00sp7imd4licp7wwr0hamqab-system-manager
[2023-04-07T16:25:13Z INFO  system_manager::generate] Registering GC root...
[2023-04-07T16:25:13Z INFO  system_manager] Creating symlink: /nix/var/nix/gcroots/system-manager-current -> /nix/store/09qp4fsq00sp7imd4licp7wwr0hamqab-system-manager
[2023-04-07T16:25:13Z INFO  system_manager::generate] Done
[2023-04-07T16:25:13Z INFO  system_manager::activate] Activating system-manager profile: /nix/store/09qp4fsq00sp7imd4licp7wwr0hamqab-system-manager
[2023-04-07T16:25:13Z INFO  system_manager::activate] Running pre-activation assertions...
Evaluating pre-activation assertion osVersion...

All pre-activation assertions succeeded.
[2023-04-07T16:25:13Z INFO  system_manager::activate] Activating etc files...
[2023-04-07T16:25:13Z INFO  system_manager::activate::etc_files] Reading etc file definitions...
[2023-04-07T16:25:13Z INFO  system_manager::activate::etc_files] Creating /etc entries in /etc
[2023-04-07T16:25:13Z INFO  system_manager::activate::etc_files::etc_tree] Reading state info from /var/lib/system-manager/state/etc-files.json
[2023-04-07T16:25:13Z INFO  system_manager] Creating symlink: /etc/.system-manager-static -> /nix/store/gsz8nng1gxm1xwnhz3l7wi8clny6zm8a-etc-static-env
[2023-04-07T16:25:13Z INFO  system_manager::activate::etc_files] Entering into directory...
[2023-04-07T16:25:13Z INFO  system_manager::activate::etc_files] Entering into directory...
[2023-04-07T16:25:13Z INFO  system_manager::activate::etc_files::etc_tree] Writing state info into file: /var/lib/system-manager/state/etc-files.json
[2023-04-07T16:25:13Z INFO  system_manager::activate::etc_files] Done
[2023-04-07T16:25:13Z INFO  system_manager::activate] Activating systemd services...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Reading state info from /var/lib/system-manager/state/services.json
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Reading new service definitions...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Writing state info into file: /var/lib/system-manager/state/services.json
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Reloading the systemd daemon...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit cryptsetup.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit veritysetup.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit sysinit.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit swap.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit network-online.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit local-fs.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit basic.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit remote-fs.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit graphical.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit sockets.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit getty.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit integritysetup.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit multi-user.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit paths.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit bluetooth.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit sound.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit timers.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::activate::services] Unit slices.target: restarting...
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (0/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (1/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (2/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (3/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (3/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (3/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (3/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (3/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (3/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (3/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (3/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (4/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (4/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (5/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (6/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (6/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (6/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (7/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (7/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (8/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (8/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (9/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (10/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (10/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (11/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (11/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (11/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (12/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (12/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (12/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (12/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (12/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (12/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (12/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (12/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (12/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (12/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (13/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (13/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (14/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (14/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (15/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (16/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (16/18)
[2023-04-07T16:25:13Z INFO  system_manager::systemd] Waiting for jobs to finish... (16/18)
[2023-04-07T16:25:14Z INFO  system_manager::systemd] Waiting for jobs to finish... (16/18)
[2023-04-07T16:25:14Z INFO  system_manager::systemd] Waiting for jobs to finish... (17/18)
[2023-04-07T16:25:14Z INFO  system_manager::systemd] All jobs finished.
[2023-04-07T16:25:14Z INFO  system_manager::activate::services] Done

Thanks for this awesome project! :rocket:

Yeah, we probably need to be a bit more granular in which targets we start when we activate a generation. It'll take some experimenting to figure out which ones we need to exclude.
We don't actually restart the targets though, we just start them, which should activate any units that are now a dependency of that target but weren't before.
I'll try to find some time to experiment with this and get back to you. So far we mainly tested this on servers without a GUI.

Sounds good! Thanks.
Let me know if I can provide any help or testing.

Apparently, on recent ubuntu releases, starting (not restarting!) multi-user.target, stops a whole bunch of units that were started by graphical.target, including for instance GDM.
I do not see this behaviour on headless ubuntu servers, like the ones that I was testing with so far.
I am not yet sure why this happens or what we can do about it.


Fixed bug with social icons in the menu of the post

When going to the post, social icons do not appear in the menu.

Update link on font-awesome.min.css.
Update version ghostly to 1.0.3a

Update 27.05.2017:

version update to 1.0.4
added link "Fork this theme" on footer page (use variable forked_url, see README)

Up to version 1.0.4a. Add icons rss-square or fa-envelope (if labs.subscribers true) on subscribe button


iOS Voice control cannot undo or redo text editing

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
void main() {
  runApp(
    MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Expansion Tile Splash'),
          centerTitle: true,
        ),
        body: TextField(),
      ),
    ),
  );
}

in iOS, turn on voice control
tap text field to start editing
type "how are you" to the text field
speak "undo"
speak "redo"

expect: the undo should remove the text in the textfield, and the redo should retype in the text back to the textfield.
actual: nothing happened.

I couldn't figure out what the iOS was trying to do when it called the selector of FlutterTextInputView. I am not sure how to proceed at this point.

There are two different direction we can go:

We know UITextField is working natively, if we can somehow convert our TextInputPlugin which is a UITextInput subclass to UITextField subclass. We should be able to make it work
Build a native app that uses UITextInput that can work with the redo and undo, and figure out what is missing on our TextInputPlugin. Right now, I can't find a comprehensive example of UITextInput that can work with voice control. I will need to keep trying.

looks like the undomanager is working for voice control as well closing