diff errors out due to deadlocks

Running skeema diff against an active master results in a deadlock error about 80% of the time for me. I'm not sure what I can do about it.
Error executing DDL in workspace: Error 1213: Deadlock found when trying to get lock; try restarting transaction

That's surprising, I've never seen deadlocks in that specific spot. Is Skeema connecting to MySQL directly, or is it going through middleware / proxy (e.g. vtgate, proxysql, etc)? If so, I'd wonder if the deadlocks are actually coming from the middleware instead of mysql. One way to check would be to run SHOW ENGINE INNODB STATUS on the relevant mysqld right after one of these deadlocks, and see if the latest deadlock section shows it.
In any case, for background on where this error is occurring:

In order to introspect the filesystem versions of your tables (the desired state), Skeema first executes the CREATE statements from the filesystem in a temporary location called a workspace. By default the workspace will be a temporary schema on the target mysql server, which Skeema creates, populates with tables, introspects, and then cleans up.
To speed up that process for users with high table counts, Skeema runs those CREATEs concurrently using up to 15 connections. Historically this has never been problematic -- I'm unaware of any situation in which concurrent CREATE TABLEs encounter deadlocks.

If Skeema is already connecting to mysqld directly, a few follow-up questions:

What version/flavor of MySQL are you using?
Is your table count per schema very high? (say, 300+ tables in one schema)
Do you use foreign keys?
Do you use partitioned tables?
Do you have Docker on the machine you're running Skeema from? If so, you could try Skeema's workspace=docker setting to move the workspace to an ephemeral container. I suspect this will side-step your problem, but I'm still very curious about the original root cause :)

It is connecting directly to MySQL. Ironically, the schema name we are using is workspaces. I got past it both on skeema diff and skeema push by trying a bunch of times.

What version/flavor of MySQL are you using?

Percona 8.0.16

Is your table count per schema very high? (say, 300+ tables in one schema)

~20 tables

Do you use foreign keys?

Yes, about 1-3 per table

Do you use partitioned tables?

Not in this schema

Do you have Docker on the machine you're running Skeema from? If so, you could try Skeema's workspace=docker setting to move the workspace to an ephemeral container. I suspect this will side-step your problem, but I'm still very curious about the original root cause :)

This is running inside Kubernetes in production, so I'm not keen to test that. :)

Thanks, I'll look more into this. It's entirely possible that MySQL 8.0's new innodb data dictionary introduced new possible deadlocks when concurrently creating tables with FKs. I've previously seen that in 8.0 when concurrently dropping tables with FKs; Skeema already has logic to handle that. That condition was trivially easy to repro though (e.g. 2 tables with FKs + 2 concurrent threads), so perhaps the CREATE one is sneakier due to CREATE being lighter-weight than DROP.

Also wanted to mention this potentially relates to #93, which I hope to focus on soon.

I'm able to reproduce this now, and have confirmed it's specific to MySQL 8 with foreign keys. So far it does indeed appear to be related to concurrently creating tables with FKs in a workspace -- similar to the already-handled situation with concurrently dropping tables with FKs in a workspace, but less frequent unless the percentage of tables with FKs is high.
I'm aiming to have a fix in master (plus integration test coverage) by tomorrow. Thank you again for reporting this!

Now fixed in master branch, and will be included in the next patch release (probably in 1 to 2 weeks). This fix has been deployed to skeema.io CI today as well. Thanks again for reporting this bug!
When cleaning up the related concurrency logic here I used your awesome package https://github.com/nozzle/throttler, so thank you for that too btw! It's much cleaner than the approach I had been using (fiddling with DB.SetMaxOpenConns) and makes the error tracking easier to manage as well :)


Update Darwinia explorer logo

Done

It still looks weird. Can we change it to a better fit one?

Ok, let me check

Udpated


[WIP] Implement MAIN and AUX pwm output on MindPX

This PR is a rough experimental prototype for implement both main and aux pwm output on px4 fmu side for autopilot without IO SOC.
The goal here is to reuse the PX4 airframe and mix files for plane, VOTL and some multicopter,
and make px4fmu v4 family be as powerful as Pixhawk.
TODO:

[ ] Split px4fmu.cpp into pwm, safety_stick, rc etc device class, then it can be easily reuse and maintain pwm function codes.

[ ] Rewrite drv_io_time and drv_pwm_servo to support 2 groups of timers, one is for main pwm and the other for aux pwm. Currently, I have no idea how to do this.

@LorenzMeier @bkueng @davids5 @dagar
Any suggestions and opinions are welcome.
#7140

This is a different arch than FMU-V2/V3 or FMU-V4, as it implements full AUX + Main support in a single FMU.
Not a perfect implementation yet, but a realistic one in limited time frame that can make it working.
It can be interesting because it can enable existing FMU-V4 based hardware having complete AUX function, and maybe more meaningful for full VTOL support.
Specially, in MindPX hardware, this PR can enable up to 8 AUX outputs. This is  even more than original Pixhawk (6 AUX), allowing more comprehensive VTOL config and more fine control. You are welcome to test it out.
Besides, Is there any other pixhawk derived hardware support this number of AUX? Let me know if any.
To distinguish, perhaps can give it a different arch name, like FMU-V4S or FMU-V4EXTREM, something like that?

I did cold test (no flying), and I am able to set RC channel from QGC to passthrough to AUX1/2, to control gimbal from RC. I have not tested this in flight to confirm everything is working fine., but will do this soon.

Is there any update on this. Is it working on latest stable version ?

@iZhangHui what's the status of this?

@mzahana  We have merged this PR to latest stable release v1.6.5 in Airmind github repository.
You can check out the source code  and prebuild.
@TSC21
In order to achieve the goal of  codes reuse and maintenance, it should refactor fmu.cpp,
it's difficult for me to do this work.

Difficult in what aspects? I suppose this is merged to the stable release already. So what's missing?

@TSC21 We only merged this PR to stable release in AirMind git repository.
The src/drivers/px4pwm/px4pwm.cpp codes are mostly copied from src/drivers/px4fmu/px4fmu.cpp, and we cut off all unnecessary function, only keep pwm relative function. From perspective of codes reuse and maintenance, it's a bad practice.
Maybe this is also the reason why this PR is not accepted.

The src/drivers/px4pwm/px4pwm.cpp codes are mostly copied from src/drivers/px4fmu/px4fmu.cpp, and we cut off all unnecessary function, only keep pwm relative function. From perspective of codes reuse and maintenance, it's a bad practice.

@iZhangHui so there's no way you can make this compatible with the upstream master? Cause that way for developers like me (which actually have a MindPX), we will never be able to have a proper sync between the devopment branch and the the stable of MindPX, having always to be stuck to it. Would be good if you could take some effort for having this in a clean way merged into upstream.

I need to review what you've done higher level, but I'd like to see the main fmu module become much simpler. It was a catch all for many unrelated pieces.

Thanks @dagar that will be more than great.
From functional point of view pilots can now fully utilize all MindPX's 8 AUXs by using current Airmind's stable release. However @iZhangHui has his standing ground in terms of future evolution. As this part of code affects and is affected by many other parts of PX4 components, so seems a better way is to take this idea into consideration under the framework of new PX4 common architecture, including V5, needs to be planned and coordinated with the dev activities of other parts.
In my view it is actually a bigger issue than just a MindPX-specific issue, as it can benefit all single FMU flight controllers, including the emerging V5 hardware.
BTW, the new MindRacer hardware revision will have total 12 PWM outputs than previous 6, which is a benefit to many VTOL builders.

I think to mainline this it would require more modularity and not code duplication.
I think there are 2 aspects that need to be improved in the mainline as it is now:

Adding channels: This does not require new code. Just the data that defines the new io_timers.
Where value could be added here is a PR that uses a by references (pointer) interface, to the timer/channel groups. Passing a pointer and apposed to the way it is now.

Mapping the new channels to look like an IO. I think we need to look at the complete PWM subsystem  and how to abstract it better given the physical limitations imposed by groups (channels on the same timer). Then mapping the air frames to that abstraction.

Splitting the existing fmu module into a seperate task for pwm output (and GPIO) handling and separate work queue module for RC input would be a good start. Then make fmu a little more generic so you can start multiple instances (MAIN & AUX) corresponding to different outputs.

Thanks for your good suggestion. @davids5 @dagar
@davids5
For the 1st aspect, when running multiple instances in differnent tasks,
I think it should add a task lock to protect references (pointer) interface. Is it right?
For the 2nd aspect, will it lead to modify the current existed air frames configs?
@dagar
I agree with you, make fmu generic and abstract will be good start.
But, to be honest, fmu.cpp is large and complex for me, I don't have enough confidence to
complete this task by myself.

@iZhangHui it needs work, but here's a branch where I split the px4fmu into fmu + RC input + safety button (+ i2c + spi). https://github.com/dagar/Firmware/tree/pr-fmu_split
With some testing and review we can get that in master, then strip it down even more. Then making it possible to run multiple instances shouldn't be as daunting.

@iZhangHui As you may know that PX4 1.7 is released, can AUX work on MindPX using 1.7 version?

@iZhangHui is this still ongoing or should we close it for the time being?

Close it as this work is terminated.


Plugin dependency graph v2

This PR builds heavily off the initial work done by https://github.com/bevyengine/bevy/pull/7839. Thanks @maniwani <3.
Objective

Implement https://github.com/bevyengine/bevy/issues/69.
Take a small step towards https://github.com/bevyengine/bevy/issues/1255.
Provide a better way for one plugin to spoof/substitute another than with names.
Continue to allow multiple instances of the same plugin.
Retain as much of the current plugin API as possible.

Solution
The TL;DR is:

Plugins are identified by TypeId.
Plugins have a manifest which describes their relationship to other plugins.
Plugin builds are now differed until App::run, and are sorted according to the dependency graph.
Plugins can no longer add other plugins to the app in Plugin::build.
The plugin collections infrastructure is now based around a growable set of plugins.

This PR contains a few features which are too closely related for me to split into seperate PRs. I recommend reviewers start with the changes in app.rs, then move on to read PluginSet::order in plugin.rs before taking a look at the rest of plugin.rs.
Manifests
Plugins may now implement Plugin::configure to specify relationships with other plugins.
impl Plugin for MyPlugin {
    fn build(&self, app: &mut App) {
        // Normal plugin stuff...
    }

    fn configure(&self, manifest: &mut PluginManifest) {
        manifest.add_dependency::<RequiredPlugin>(true);
        manifest.add_dependency::<OptionalPlugin>(false);
        manifest.add_substitution::<ReplacedPlugin>();
    }
}

PluginManifest::add_dependency tells the app to build another plugin before this one. If the dependency is marked required, the app will panic if the target plugin is disabled or not present.
PluginManifest::add_substitution disables the target plugin, if it is present, and makes all of it's dependencies depend on this plugin instead. It can be used for debugging, for overriding default engine behavior, or for plugin aliasing. A plugin cannot be overridden by multiple other plugins at the same time.
When dealing with manifests, we pretend like all instances of a non-unique plugin are the same. A dependency on a non-unique plugin means all instances of that plugin will be built first. All instances of a plugin are passed a reference to the same PluginManfiest in Plugin::configure. The same dependency can be specified multiple times, but the app will panic if, for example, one instance depends on a given plugin and another instance substitutes for it.
PluginManifest is basically just a HashMap<TypeId, PluginRelation>, but it also stores the type names of the targets to provide friendly errors. The goal is to allow easy extensibility, and to pave the way for Plugins to move into the ECS once relations are in.
Plugin Builds
The app now defers building plugins until App::build is called in App::run. Places where App:update is called directly must now call App::build first. The plugin life-cycle functions build, ready, finish and clean are now called in an order determined by PluginSet::order which respects plugin dependencies.
I have avoided changing any other aspects of the plugin life-cycle as much as possible. I think it would be worth re-evaluating when/if this is merged.
Plugin Sets
The elephant in the room is that PluginGroup is built to accommodate implicit plugin ordering, and makes no sense when plugins can be added in any order. This issue is confounded by the App now needing all plugins to be registered before App::build is called; Plugins like TransformPlugin which used to add ValidParentCheckPlugin in Plugin::build now need to be added together. The simplest solution would be to add them to a new TrandomPluginGroup, but plugin groups cant be added to plugin groups.
To solve these problems I introduced PluginSet, a correct-by-default growable collection of plugins. PluginSet takes over the existing functionality from App::add_plugins and implements Plugins, allowing sets to be added to other sets. App has been changed to hold a PluginSet internally, and PluginGroup now adds plugins directly to a PluginSet rather than a PluginGroupBuilder. Anything that implements Plugins can be turned into a PluginSet, so it is effectively the canonical representation of that trait. PluginSet is also in-charge of maintaining manifest information, and as I mentioned earlier is what determines the ordering of plugins for the App (through PluginSet::order).
The downside is that every PluginGroup now needs to be re-written to use the new API, but the upside is that the API is a little less verbose and far more flexible.

impl PluginGroup for DefaultPlugins {
    fn build(self, mut set: PluginSet) -> PluginSet {
        set = set.add_plugins((
            bevy_log::LogPlugin::default(),
            bevy_core::TaskPoolPlugin::default(),
            bevy_core::TypeRegistrationPlugin,
            bevy_core::FrameCountPlugin,
            bevy_time::TimePlugin,
            bevy_transform::TransformPluginGroup, // Adding a group to a group
            bevy_hierarchy::HierarchyPlugin,
            bevy_diagnostic::DiagnosticsPlugin,
            bevy_input::InputPlugin,
            bevy_window::WindowPlugin::default(),
            bevy_a11y::AccessibilityPlugin,
            IgnoreAmbiguitiesPlugin,
        ));

        // Feature flags ommited for length...

        set
    }
}

Changelog

Plugins are now identified by TypeId.
Plugins now have a manifest which describes their relationship to other plugins.
Plugins builds are now differed until App::run, and are sorted according to the dependency graph.
Plugins can no longer add other plugins to the app in Plugin::build.
PluginSet introduced, and used as the basis for a reworked plugin infrastructure.

Migration Guide

Most users will not need to migrate their code.
Tests which directly call App::update must now call App:build first.
Plugins which exploited Plugin::name to control how they were identified will need to use subs_for instead. Plugin::name has been removed.
Functionality dependent on adding plugins in a specific order should now be use depends_on.
Implementations of PluginGroup must be re-written to use PluginSets, and calls to PluginGroup::build should be removed.

Generic plugins were discussed on discord, with the solution being to depend on specific instances.
This will be weird for depending on plugins like rapier, where the generic is used for a really niche functionality.
I guess making the parent plugin generic over the same type is a must, even if it doesn't use it.
The part about union of non-unique plugins is a bit unclear to me.
Will the Plugin trait add a union(self, other: Self) function that combines instance values as defined by the plugin creator?

Great point, and interesting question!
Generic Plugins
I'm not familiar with rapier's plugin structure. In general, this will only let you depend on a single specific concrete plugin. However, if you really want to depend on any member of a group of related plugins it may be possible to do interesting things by abusing the loose-coupling provided by subs_for.
// This is a plugin we would like to specify dependencies upon, regardless of the specific `T`.
struct MyGenericPlugin<T> {
    // Plugin fields using T ...
};

// This marker trait doesn't implement `Plugin`, but plugins can still specify it as a dependency.
struct MyPluginMarker;

impl<T> Plugin for GenericPlugin<T> {
    // Normal plugin stuff ...
    fn subs_for(&self) -> Vec<TypeId> {
        vec![TypeId::of::<MyPluginMarer>()]
    }
}

I believe this should allow a dependency on any GenericPlugin<T>. Still need to double-check this is the case, and write a test.
struct MyDependentPlugin;

impl<T> Plugin for MyDependentPlugin<T> {
    fn depends_on(&self) -> Vec<TypeId> {
        vec![TypeId::of<MyPluginMarker>()]
    }
}

This is a consequence of letting the user specify a TypeId directly. It should be possible to prevent this if we decide it is undesirable.
Non-unique plugins
My current plan for non-unique plugins is to pretend, for the purposes of ordering and dependency resolution, that they are a single plugin. If any instance of a non-unique plugin specifies a dependency, then all instances of that plugin will be treated as having that dependency. So they use the union across all their dependency sets. Otherwise their behavior shouldn't change.
I hope that's a bit clearer.

Generic Plugins
The marker is an interesting approach, I like the aliasing aspect of it.
To clarify what I thought the proposed solution on discord was:
struct PhysicsPlugin<T> {
    // `T` is used for custom user-data, not necessary for most users
};

impl<T> Plugin for MovementPlugin<T> {
    fn depends_on(&self) -> Vec<TypeId> {
        // `T` propagated to the other plugin
        vec![TypeId::of<PhysicsPlugin<T>>()]
    }
}

Non-unique plugins
Misunderstanding on my part, the unique plugin functionality is already implemented, and the plugin instances of the same types never interact with one another.
I now understand, you meant how it works on graph edges, thanks. 🙂

That's definitely the intended approach if both plugins are generic. I will add some examples up above.

I didn't took a look into the implementation itself (yet), but I like the idea of having a better plugin dependency.
My Use Case
What made me pick interest in this topic is the because I'm having a difficult time by managing plugin dependency with current plugin system.
In short I need to add a custom AssetSource and thus my plugins needs to ran before the AssetPlugin, but also I have another plugin and some logging that needs to be ran after the LogPlugin, since users likely just throw app.add_plugins(DefaultPlugins) it's hard to tell users to mess with the plugin insertion order.
Plugin Dependency API
Even tho I understand the proposed API I wonder if it is possible to make it match the Systems Dependency API, so instead of having add_dependency, add_substitution, would it be better to just use something like:
app.add_plugins((
    CustomAssetPlugin.before(AssetPlugin),
    FancyPlugin.after(LogPlugin),
    ConsoleDebugPlugin.add_if(is_debug_build),
));

That way it would be more straightforward for new users to just learn one API and would be less verbose to write IMO.
Plugin Substitution
I don't think it is a good idea to allow plugins to substitute others, this could cause a conflict and be hard to debug, because you don't know when some plugin that you added will substitute another plugin that you have added.
A solution for this would be plugins to allow some Settings associated type and plugin authors may add an enable flag or some form of configuration so plugins could interact with each other and have better cooperation.

This seems like important functionality both for the internal team to be able to try out new features or their variants without a full fork, and for the ecosystem to be able to contribute with lower barriers and less work for reviewers.
It also lays the foundation for defining the internal API of Bevy as a network of contracts, and for supporting dependency injection of internal functionality across crate and feature boundaries.
Basically, the ECS seems like a big black box and there is a lot of just taking another plugin's word for it that the data that just disappeared into the aether will be handled properly. A thin layer of formality as suggested by this PR could alleviate this concern in the short term by adding a slightly more fine-grained system of expressing dependencies than features. After some iterating, it could be developed into something that resembles more of a platform with a reference implementation engine that is quite usable out of the box, versus just the engine part.
I also suspect that this is a good candidate for gradual adoption. I'd suggest to identify where this is most useful (physics springs to mind) and prototype how this actually works with that concrete example.

This PR has promise but it far too large and sweeping. I'm going to try to break the useful bits into a few smaller incremental changes.


Add containers_image_openpgp to deploy, run-portal, and unit-test-go

Which issue this PR addresses:
When putting in the PR https://github.com/Azure/ARO-RP/pull/2032 last week, I forgot to add containers_image_openpgp to other Makefile targets where it's needed.

What this PR does / why we need it:
This adds the tag to make deploy, make run-portal, and make unit-test-go as well.

Test plan for issue:
Tested each command locally.

Is there any documentation that needs to be updated for this PR?

/azp run e2e

/azp run e2e


How to synch the Z-order building of a Stack?

Description:
I have a Stack with two Widgets. Widget1 (as a background) being a Grid of 4 AssetImages and Widget2 being a semi-transparent rectangular coloured Container building on top of Widget1. The Stack is building both widgets as expected!
Problem:
Widget2 is visually rendered before Widget1, which leads to an awkward effect because Widget2 is rendered over an empty background. I assume that this is caused by Stack async building of children however AssetImage is a synchronous call...
Question:
How to make Widget2 rendering to wait for widget1 until Widget1 gets fully visual as the background?
Notice that I have already tried WidgetBindings.instance.addPostframeCallback
Many Thanks,

Hi @jorge2antibes,
This issue doesn't seem to describe a bug or a feature request. Please see https://flutter.dev/community for resources and places where you can ask questions like this.
You may also get some help if you post it on Stack Overflow and if you need help with your code, please see https://www.reddit.com/r/flutterhelp/
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you


Count of minimum Swaps to Sort

Description
It will be a cpp/java program, which will count the no. of swaps that needs to be done to make the array sorted.
Domain
CPP
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of LearnCPP.

/assign


Change linter back to errors to block PR

Description
Returns the linter back to setting linter issues to errors in order to block a PR
Issue NONE
Type of change

[X] New feature (non-breaking change which adds functionality)

Checklist

[X] My code follows the style guidelines of this project (required)
[X] I have performed a self-review of my code (required)
[X] I have linted and formatted my code (required)
[X] New and existing unit tests pass locally with my changes (required)

And the failed linter now blocks PR, perfect!


Required Permissions for Access Review Export

Hello,
i encountered the following error during a full export:
Export-AzureAD -Path 'C:\AzureADBackup' -all
Application was consented with all permissions and i got the error during the AccessReview Export.
 IdentityGovernance/AccessReviews
    842169fe-e1b7-4ce9-98b6-6a9db02eec6b
Invoke-MgGraphRequest : GET https://graph.microsoft.com/beta/accessReviews?$filter=(businessFlowTemplateId+eq+%27842169
fe-e1b7-4ce9-98b6-6a9db02eec6b%27)
HTTP/1.1 403 Forbidden

Workaround:
After some reverse Engineering, i found that my user account needs to have Identity Governance Administrator to be able to successfully export the access Reviews.

Thanks for the feedback @DenizSe. We will reach out to the team and let them know about this issue.

Any update on this @merill ?

Have you tried using application permissions instead of delegated (user) permissions?

This permission issue has now been resolved.


Markdown file (.md) support

Hi ,
I noticed that markdown (.md) files are not supported by Document Archiver yet.

You can implement markdown support with the help of this library called MarkdownEditorControlFX that provides a JavaFX control for previewing/editing markdown.

You can disable the editing by:
MarkdownEditorControl control = new MarkdownEditorControl();
control.setEditable(false);

Hope you find this enhancement request useful! :)
Best regards!

Hi Daniel
This is indeed a brilliant tip 😀
Wow - another cool library by you 👍🏻
I will definitely include this in Document Archiver.
Best regards
Stephan

Hi again
Just added the dependency to my project and found that this will add 2.5 MB of half-baked sub-dependencies:

Came to the conclusion that the cost(risk)/advantage ratio is not right here for one single filetype which is not really /so/ important for archiving (would be different for .docx-files (for which I am still searching for a solution)). I will just add Markdown files now to be displayed as plain text (should be okay for everybody dealing with Markdown files).
Maybe if there would be a more lightweight viewing-only library in the future (wink) I would give it a second thought.
Best regards
Stephan

Yeah, that's totally fine, no problem. I just suggested it as a "bonus" feature you know :)


Support Multipart Upload API for S3

Hello! I have a problem with chunking: I use dropzone.js and Laravel to upload large files. I expect a large file to be uploaded to s3, but upload just a last of his parts! As I can see, script doesn't glue these parts together as I expected. That`s why, I had one file before uploading and N files in s3. But I need also one large file in s3. Is there any ways to do that? Thank you!

+1

Hi there, you need to upload to upload the file to s3 after all chunks are merged.
Check this section: https://github.com/pionl/laravel-chunk-upload/wiki/Saving-to-Cloud
Or do you have problem that chunks are not locally merged?

Instead of calling saveFile you will use the code for saving to s3. Here is example of a controller: https://github.com/pionl/laravel-chunk-upload/wiki/controller

I think they want to take advantage of the Multipart Upload API

Multipart upload allows you to upload a single object as a set of parts. [...] You can upload these object parts independently and in any order.

Oh I see, it would need to implement some kind of "QueueSave" that would save the part and in a job would re-send it to Amazon. Also it would skip the finalization of the file.
Unfortunately I do not use Amazon services. If any one wants this feature you are free to implement it (contact me on email if you need guidance).

Does the package have support for multipart upload now?

Hi :) Does the package have a support for multipart upload now?


If the bag tracker isn't available, the bag indexer drops the message

Spotted in debugging https://github.com/wellcomecollection/platform/issues/4765
The bag indexer dropped several thousand messages tonight, all with a similar error:

18:59:54.357 [main-actor-system-akka.actor.default-dispatcher-6] ERROR u.a.w.p.a.i.e.IndexerWorker$$anon$1 - DeterministicFailure(akka.stream.StreamTcpException: Tcp command [Connect(storage-prod-bags-api.storage-prod:8080,None,List(),Some(10 seconds),true)] failed because of java.net.UnknownHostException: storage-prod-bags-api.storage-prod,None)

The bags API tasks all restarted earlier this evening, with at least one showing the error:

java.lang.OutOfMemoryError: Java heap space

I suspect this was caused when the bag indexer tried to retrieve Chemist & Druggist.
The bag indexer shouldn't treat these errors as deterministic – it should return the message to the queue, and let it be retried. In most cases, the bag affected will be one that happened to arrive just after C&D, not C&D itself.

We should also exclude C&D from the reindex script; it's handled in a bit of a special way and not meant to be reindexed repeatedly.
(We should document what we've done, cos I'd completely forgotten!)

I've had a look at the code in the bag tracker.
It would be possible for the bag indexer to notice this has happened, and retry, but once https://github.com/wellcomecollection/storage-service/pull/753 is merged it would be extremely rare (if ever) that the code path is hit. The bags API should not be experiencing long delays.
Let's stop C&D being sent to the bag indexer, and then I'm going to close this as WONTFIX.


Fixes #49

This PR ensures that ResourceCleanerScheduler invokes one accept call for Operation(s) related to each agent.

Just nitpicks about adding comments, LGTM otherwise


feature(Loaders): Allow flipping loading indicators horizontally

This PRs allows us to flip the loading indicators horizontally. This is a lot easier than modifying the timing of the animations for each loading indicator.
An example use case...
Without flipping:

With flipping:

Checklist

[ ] Did you add a JIRA issue in a commit message or as part of the branch name?
[ ] Did you add new unit tests?
[ ] Did you add new integration tests?
[ ] If this is a regression, did you write a test to catch this in the future?

run integration tests

run integration tests


Fix: Fixed issue where open tabs were duplicated when opening a folder from the outside of Files

Resolved / Related Issues

[X] Were these changes approved in an issue or discussion with the project maintainers? In order to prevent extra work, feature requests and changes to the codebase must be approved before the pull request will be reviewed. This prevents extra work for the contributors and maintainers.
Closes #15107

Validation
How did you test these changes?

[X] Did you build the app and test your changes?
[ ] Did you check for accessibility? You can use Accessibility Insights for this.
[ ] Did you remove any strings from the en-us resource file?

[ ] Did you search the solution to see if the string is still being used?

[ ] Did you implement any design changes to an existing feature?

[ ] Was this change approved?

[ ] Are there any other steps that were used to validate these changes?

The AppInstances.Count == 0 if makes sense, thank you very much for the fix btw. But why is the LastSessionTabList no longer stored?

But why is the LastSessionTabList no longer stored?

It is no longer needed when #14795 is merged.


Update README.md

Add "Quartize" link
What does this PR do?
List your suggestions here and why they are useful to the community.

https://github.com/hrbrmstr/reveal-qmd - Browser extension to to convert an in-page ObservableHQ notebook to a Quarto document with downloadable FileAttachments.

Requirements for your Awesome item list

[X] Only has awesome items. Awesome lists are curations of the best, not everything.
[X] Does not contain items that are unmaintained, has archived repo, deprecated, or missing docs. If you really need to include such items, they should be in a separate Markdown file.
[X] Entries have a description, unless the title is descriptive enough by itself. It rarely is though.
[X] Has consistent formatting and proper spelling/grammar.
- The link and description are separated by a dash.
Example: - [AVA](…) - JavaScript test runner.
- The description starts with an uppercase character and ends with a period.
- Consistent and correct naming. For example, Node.js, not NodeJS or node.js.
[X] Doesn't use hard-wrapping.
[X] Your item(s) fit into an existing sections. (if you think a new section is needed, please open a discussion first).
[X] Add your new item to the bottom of the list in a section.
[X] If a duplicate item exists, discuss why the new item should replace it.
[X] Check your spelling & grammar.
[X] The item must follow this format:- [item name](https link) - Description beginning with capital, ending in period.

[X] Be sure to have read the contributing guidelines.

Thanks!


Respect SNOMED-CT coded medication orders within FHIR exports

This pull request adds the ability to specify "SNOMED-CT" within the "system" field of a code within a MedicationOrder state definition.
With this change, the FHIR DSTU2, STU3 and R4 generators will now correctly output the SNOMED CT URI ("http://snomed.info/sct"), rather than ignoring the value in the module and defaulting to the RxNorm URI.

Are there any modules that use SNOMED for medications? By default, there shouldn't be. Are you running your own modules with SNOMED medications?

No, there are no default modules that use SNOMED CT for medications, as it is not currently supported. Specifying a "SNOMED-CT" and a SNOMED CT cdode within a module currently results in a RxNorm URI being emitted to the FHIR output, for medications.
We have a requirement to use SNOMED CT medication codes for our own modules, so it would be great if we could do this simply by specifying a system in the code within the state definition, in the same way that you currently can for encounter reasons, conditions, etc.

Thanks for the pull request!


Excessive MountVolume.SetUp succeeded for volume "kubernetes.io/secret/..."

Issue Report Template
Tectonic Version
1.6.7
Environment
"Bare metal" on KVM
Expected Behavior
Less logs.
Actual Behavior
More logs.
Reproduction Steps
I setup aggregated logging through fluentd and each day I get millions of entries like
I0717 04:50:47.718073     715 operation_generator.go:597] MountVolume.SetUp succeeded for volume "kubernetes.io/secret/c8e41391-6727-11e7-bc7a-525400f93bbc-default-token-jdzwk" (spec.Name: "default-token-jdzwk") pod "c8e41391-6727-11e7-bc7a-525400f93bbc" (UID: "c8e41391-6727-11e7-bc7a-525400f93bbc").

This particular pod is one of the linux container update pods. Why is the "MountVolume.SetUp" done every few seconds (or some such)?

cc: @euank @dghubble

This is operating as intended by upstream. The kubelet will constantly poll a volume to see if it should be remounted. The code that answers "should this be remounted" for a secret is here: https://github.com/kubernetes/kubernetes/blob/v1.6.7/pkg/volume/secret/secret.go#L84-L86
As you can see, it will remount it as often as possible.
Upstream has "fixed" this by reducing this message to debug level in v1.7.0

@euank that's great news. :-) Maybe the same for the "node update" messages?


is this similar to nginx?

I ran standalone program with below code:
package main
import (
"github.com/goproxy-master"
"log"
"net/http"
)
func main() {
proxy := goproxy.NewProxyHttpServer()
proxy.Verbose = true
log.Fatal(http.ListenAndServe(":8080", proxy))
proxy.OnRequest().DoFunc(func(r *http.Request,ctx *goproxy.ProxyCtx) (*http.Request, *http.Response){
r.Header.Set("X-GoProxy","1")
return r, nil
})
}
localhost:8080 has a proxy running, but not sure how to route my actual requests via this proxy running on port 8080

How to specify the target urls , I wish to access via this proxy programmatically, any example  I could refer to(not via browser)

curl --proxy localhost:8080 google.com
On Thu, Sep 28, 2017 at 12:45 AM, SATYA SHANMUKA SRINIVAS KUNDETI <
<EMAIL_ADDRESS>wrote:

How to specify the target urls , I wish to access via this proxy
programmatically, any example I could refer to(not via browser)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/elazarl/goproxy/issues/244#issuecomment-332664906,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAP4os_SiSCUxkqBQ0vwY3mDq3DWauMyks5smsHjgaJpZM4PmcJz
.

Thanks, will try this and how to invoke the same in the GO code via a httprequesy call programmatically?

Can you open a bug about (2)?


WillPopScope assumes immediate disposal on route change

On the master channel, I'm getting the error when navigating away from a page with a Form (and thus a WillPopScope) with Navigator.maybePop(context), when the Form is not unmounted before route disposal:
'package:flutter/src/widgets/will_pop_scope.dart': Failed assertion: line 59 pos 12: '_route == ModalRoute.of(context)': is not true.

Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=BUG.md

The relevant error-causing widget was
    Form-[LabeledGlobalKey<FormState>#4274e]
lib/task/edit_task_page.dart:92
When the exception was thrown, this was the stack
#2      _WillPopScopeState.didUpdateWidget
package:flutter/…/widgets/will_pop_scope.dart:59
#3      StatefulElement.update
package:flutter/…/widgets/framework.dart:4571
#4      Element.updateChild
package:flutter/…/widgets/framework.dart:3141
#5      ComponentElement.performRebuild
package:flutter/…/widgets/framework.dart:4412
#6      Element.rebuild
package:flutter/…/widgets/framework.dart:4116
...

I believe this is because I am not using the typical flutter navigation animations and am instead using in-place animations along with a non-animating custom route:
class NoAnimationMaterialPageRoute<T> extends MaterialPageRoute<T> {
  NoAnimationMaterialPageRoute({
    @required WidgetBuilder builder,
    RouteSettings settings,
    bool maintainState = true,
    bool fullscreenDialog = false,
  }) : super(
          builder: builder,
          maintainState: maintainState,
          settings: settings,
          fullscreenDialog: fullscreenDialog,
        );

  @override
  Widget buildTransitions(
    BuildContext context,
    Animation<double> animation,
    Animation<double> secondaryAnimation,
    Widget child,
  ) {
    return child;
  }

  @override
  Duration get transitionDuration => const Duration(milliseconds: 0);
}

This is admittedly a bit of a niche/hackish use-case, but I think it would also apply to a form nested in a Hero

flutter doctor -v
[✓] Flutter (Channel master, v1.14.7-pre.69, on Mac OS X 10.14.6 18G103, locale en-US)
    • Flutter version 1.14.7-pre.69 at /Users/mjr/flutter
    • Framework revision 1eb5bb653c (24 hours ago), 2020-01-31 12:14:08 -0800
    • Engine revision 804dca62a1
    • Dart version 2.8.0 (build 2.8.0-dev.6.0 162d6c5634)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/mjr/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.1, Build version 11A1027
    • CocoaPods version 1.8.3

[✓] Android Studio (version 3.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 28.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[✓] VS Code (version 1.41.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.7.1

[✓] Connected device (1 available)
    • Michael’s iPhone • 00008020-000858D10281002E • ios • iOS 13.1.3

working around with the following for now:
class PopIssueWorkaroundState extends State<PopIssueWorkaround> {

  final _formKey = GlobalKey<FormState>();

  // workaround for https://github.com/flutter/flutter/issues/49952
  ModalRoute _mountRoute;

  @override
  void didChangeDependencies() {
    _mountRoute ??= ModalRoute.of(context);
    super.didChangeDependencies();
  }

  @override
  void dispose() {
    _formKey.currentState?.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    final formKey = _mountRoute == ModalRoute.of(context)
        ? _formKey
        : Key('hack-to-dispose-of-will-pop-callback');
    return Form( key: formKey, ...);
  }
}

I think one potential solution here would be to simply not wrap _FormScope in a WillPopScope if there is no onWillPop provided to Form in it's build, making the coupling optional
  @override
  Widget build(BuildContext context) {
    if (widget.autovalidate)
      _validate();
-   return WillPopScope(
-     onWillPop: widget.onWillPop,
-     child: _FormScope(
-       formState: this,
-       generation: _generation,
-       child: widget.child,
-     ),
-   );
+   final scope = _FormScope(
+     formState: this,
+     generation: _generation,
+     child: widget.child,
+   );
+   return widget.onWillPop != null
+       ? WillPopScope(
+           onWillPop: widget.onWillPop,
+           child: scope,
+         )
+       : scope;
  }

/cc @chunhtai

@chunhtai here you go https://gist.github.com/micimize/62bdb23c610dbe89a858e0fec70fce18
I was right about it applying to Hero(child: Form()) so I used that for reproduction.

Any solution? I have the same problem with flutter in the 1.17.1 release

I also have the same problem in the 1.17.1 release

Please use the thumb up to but the priority

having same issue

having same issue

same issue here

Same issue here as well.

I have the same issue. The  workaround supplied by @micimize didnt work.
The new error was :
type 'ValueKey' is not a subtype of type 'GlobalKey'
To make the workaround work i used:
    _formKey = _mountRoute == ModalRoute.of(context)     ? _formKey     : new GlobalKey<FormState>();
instead of
    final formKey = _mountRoute == ModalRoute.of(context)         ? _formKey         : Key('hack-to-dispose-of-will-pop-callback');

I have the same issue. The  workaround supplied by @micimize didnt work.
The new error was :
type 'ValueKey' is not a subtype of type 'GlobalKey'
To make the workaround work i used:
    _formKey = _mountRoute == ModalRoute.of(context)     ? _formKey     : new GlobalKey<FormState>();
instead of
    final formKey = _mountRoute == ModalRoute.of(context)         ? _formKey         : Key('hack-to-dispose-of-will-pop-callback');

Same here, I have a form on a popup. When I close the popup and press the button to open it again really quick it crashes. This popup has animation.
If I remove formKey UI runs smooth.

Same here, I have a form on a popup. When I close the popup and press the button to open it again really quick it crashes. This popup has animation.
If I remove formKey UI runs smooth.

Yes, I have figured out as well that formKey is not stable. I have a form where you can submit something and it uses formKey, however, sometimes when I open this page it works perfectly fine, and sometimes I open this page, and then there is a modal.formKey issue - something like that, so sometimes it works and sometimes it doesn't. Quite unstable. I think that is the reason for most issues.

Yes, I have figured out as well that formKey is not stable. I have a form where you can submit something and it uses formKey, however, sometimes when I open this page it works perfectly fine, and sometimes I open this page, and then there is a modal.formKey issue - something like that, so sometimes it works and sometimes it doesn't. Quite unstable. I think that is the reason for most issues.

Same issue, any solution ??

Same issue, please fix this

More than year has passed any solution?

I have the same problem when using a hero widget and a formKey on second page. My solution is to first put Form then Hero and then wrap a Material  Scaffold(         body: Form(           key: formKey,           child: Hero(             tag: '${eta.dmy}${eta.index}',             child: Material(

@abarth may have thoughts based on https://github.com/flutter/flutter/pull/8311#discussion_r102334270.
I'm wondering if this assert could be moved to dependenciesChanged if the point is to ensure the existence of the _route. Or perhaps the will pop callback can be wrapped to disarm the assert, i.e.
class _WillPopScopeState extends State<WillPopScope> {
  ModalRoute<dynamic> _route;
  bool popping = false;
  //...
  void didUpdateWidget(WillPopScope oldWidget) {
    // disarm assert if there is no callback to set popping
    // or we're popping off
    assert(widget.onWillPop == null || popping || _route == ModalRoute.of(context));
    // ...
      if (widget.onWillPop != null)
        _route.addScopedWillPopCallback((){
          popping = onWillPop();
          return popping;
        });
  }
  // ...
}

maybe when dialog completed should be called after content tree fully disposed ...

I can't reproduce this issue with the code example in https://gist.github.com/micimize/62bdb23c610dbe89a858e0fec70fce18 or the code example in #63565


Request: add an option to reuse the same port forward number

Currently, every time the script started, and if PIA_PF=true, the port forward will be regenerated to a new number. This behavior is making a setup to run the script on boot (before logging in) for remote SSH connection impossible since the SSH port will have to be changed accordingly to the script's newly generated port number.
Therefore I request the option to reuse the same port forward number as a feature of this script.

This should already work if you have the environment variable set for PAYLOAD_AND_SIGNATURE:
https://github.com/pia-foss/manual-connections/blob/2e29ad2d8deaf913763c2821c4ce1de0e0e1b2eb/port_forwarding.sh#L84-L96
The scripts already give you control over this aspect. I think the scripts are documented well enough to allow you to fork this repo and extend the functionality as you desire it. Do you still think the scripts should be modified to offer a user-friendly option for this case?

This should already work if you have the environment variable set for PAYLOAD_AND_SIGNATURE:
https://github.com/pia-foss/manual-connections/blob/2e29ad2d8deaf913763c2821c4ce1de0e0e1b2eb/port_forwarding.sh#L84-L96
The scripts already give you control over this aspect. I think the scripts are documented well enough to allow you to fork this repo and extend the functionality as you desire it. Do you still think the scripts should be modified to offer a user-friendly option for this case?

I could be wrong. But I think the default behavior of the script should be in line with the official PIA client where the users get the same port whenever they reconnect the connection. Moreover, the port forward is more useful this way. Otherwise, there're many settings in the system that will have to be changed accordingly to make use of the VPN's port forwarding.
My idea is that the port forward number will be reset only when the users specify PIA_PF=false.
Thanks.

But I think the default behavior of the script should be in line with the official PIA client where the users get the same port whenever they reconnect the connection.

These scripts do aim to have the same behavior as the desktop app. They were written so that people can read, understand and modify them in a way that fits their requirements. I think the best option for you is to fork the scripts and to adapt them to your requirement.


Document S3 object JSON format

The file written by Lambda, and read by the website

Perhaps this with messages being limited to the last 20 in chronological order:
{
  "messages": [
    {"name":"Peter", "message":"Hello there"},
    {"name":"Mitch", "message":"Hi Peter"},
    {"name":"Peter", "message":"How are you"},
    {"name":"Peter", "message":"Happy because I am coding"},
  ]
}

Location of this file will come from config
s3://s3_bucket/data_key

The Lambda function is already using this... it seems we are done


fix: config flow options and clearing location

clean up unused import
clean up testing debug code

Codecov Report

Merging #46 (14f95dd) into dev (9307ecb) will decrease coverage by 0.38%.
The diff coverage is 75.00%.

@@            Coverage Diff             @@
##              dev      #46      +/-   ##
==========================================
- Coverage   92.75%   92.37%   -0.39%
==========================================
  Files           5        5
  Lines         359      354       -5
==========================================
- Hits          333      327       -6
- Misses         26       27       +1

Impacted Files
Coverage Δ

custom_components/openei/__init__.py
84.46% <ø> (-0.30%)
:arrow_down:

custom_components/openei/config_flow.py
93.16% <75.00%> (-0.74%)
:arrow_down:


ValueError: output of generator should be a tuple (x, y, sample_weight) or (x, y). Found: None

Does anybody come across this error? It seems to be something wrong with Keras itself and I have not find an executable way to solve it yet. Appreciate for your kind help.  The details are as follows.
C:\ProgramData\Anaconda3\lib\site-packages\keras\legacy\interfaces.py:86: UserWarning: Update your fit_generator call to the Keras 2 API: fit_generator(<data_prep..., 30000, 1, validation_data=<data_prep..., validation_steps=1000)
'` call to the Keras 2 API: ' + signature)
Epoch 1/1
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\threading.py", line 916, in _bootstrap_inner
self.run()
File "C:\ProgramData\Anaconda3\lib\threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\training.py", line 606, in data_generator_task
generator_output = next(self._generator)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\preprocessing\image.py", line 727, in next
return self.next(*args, **kwargs)
File "F:\Users\wanfb\Documents\Implementation-CVPR2015-CNN-for-ReID-master\CUHK03\data_preparation.py", line 34, in next
index_array, current_index, current_batch_size = next(self.index_generator)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\preprocessing\image.py", line 718, in _flow_index
yield (index_array[current_index: current_index + current_batch_size],
TypeError: slice indices must be integers or None or have an index method
Traceback (most recent call last):
File "main.py", line 100, in
main(args.dataset_path)
File "main.py", line 20, in main
train(model, dataset_path)
File "main.py", line 43, in train
model.fit_generator(Data_Generator.flow(f,flag = flag_train),one_epoch,epoch_num,validation_data=Data_Generator.flow(f,train_or_validation=which_val_data,flag=flag_val),nb_val_samples=nb_val_samples)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\legacy\interfaces.py", line 87, in wrapper
return func(*args, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\training.py", line 1851, in fit_generator
str(generator_output))
ValueError: output of generator should be a tuple (x, y, sample_weight) or (x, y). Found: None

@prashanthbasani where you able to solve this error ?

https://github.com/Cysu/open-reid
I think this is a better code for new learners of person reid.


Fix BlockwiseCoreg shift direction

Partially solves #584.
It looks like the warp_dem function was simply in the wrong horizontal direction. This is because the NuthKaab metadata used to be the opposite before the homogenization in #530, and it is only tested on that method.
Re-adds BlockwiseCoreg to the documentation, with a warning about the functionality being experimental.
This PR does not improve tests (only did visual checking on our example output), this should be done when solving the rest of #584.

This small fix and warning are sufficient to release 0.1, we can dive into the small artefacts of #584 separately.


integration-test: wait for node discovery first

I've noticed this issue in the last week. I can't guarantee it fixes anything, but it follows the way we test the nodes in the test-suite.
We should also rework how the nodes work to ensure they reject any API requests until they are ready to handle such events. For example, a node should not attempt to gossip requests if its discovery stage is incomplete.
I've tested compiling this locally, but I can't verify it works yet. Having issues with Docker ports on WSL2. :/

Ok, CircleCI still fails. It seems it's consistent too.

But Dockercloud is back! And green...

This passed CircleCI twice now.

Moved retryFor into agora.utils.Test. Waiting for CircleCI..

What do you mean by "empty" import? retryFor is used in those tests. However I could add a public import of agora.utils.Test into agora.test.Base..

Ah right you moved it 🤦♂
Either works for me, what do you prefer ?

People will frequently forget to import it, so I'd say let's go with public import.

Updated, waiting for circle & friends.

It seems the checkout command fails frequently. I'll restart the run..

##[error]fatal: reference is not a tree: 7e6d87b35522b6b1ffbe06e39ea4f71a14995e68

Ah I bet it's my fault.


[BUG] ChatGoogleVertexAI - Error: Unable to verify model params: {"lc":1,"type":"constructor","id":["langchain","chat_models","chat_integration","ChatVertexAI"],"kwargs":{"temperature":0.1,"model":"chat-bison","auth_options":{"

Issue with ChatGoogleVertexAI node when using chat-bison after 1.6.5 versions. Works fine on 1.6.5.
Error: Unable to verify model params: {"lc":1,"type":"constructor","id":["langchain","chat_models","chat_integration","ChatVertexAI"],"kwargs":{"temperature":0.1,"model":"chat-bison","auth_options":{"
Also Gemini 1.5 model doesn't work. It returns Object Object as the output.

For Gemini 1.5, I've added a commit here to update the gemini 1.5 model

Perfect! Thank you very much @HenryHengZJ! Let me know when chat-bison is fixed please.


Couldn't submit my code to Virtual Judge

When I using this extension to submit my code, vscode shows this message:
运行命令 vjudge-helper.submitCode 错误: Cannot convert undefined or null to object。这可能是由提交 vjudge-helper.submitCode 的扩展引起的。

I tried only open the code I need submit or select all my code and press the cloud buttom. it shows the message again.

Try update the plugin to v0.2.4 in vscode marketplace. It changed the submit method to match the current version of VJudge submit API, should work fine now.


Bump marked from 3.0.8 to 4.0.10

Attempts at superseding https://github.com/TypeStrong/typedoc/pull/1844
by bumping to a more recent @types/marked and fixing where breaking
changes happened.
Bumps marked from 3.0.8 to 4.0.10.

Release notes
Changelog
Commits

Mmmh, looks like I should fix the lockfile, having a look (apologies, I'm not particularly expert in npm).

Mmmh, looks like I should fix the lockfile, having a look (apologies, I'm not particularly expert in npm).

Fixed by https://github.com/TypeStrong/typedoc/pull/1851/commits/d959b711b2f469a93f9a2831b0edf2a2b96bdd11

Thanks!

Many thanks for accepting the PR and immediately making a new release! 🙇🏻♂


Move everything over to Postgres.query

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#278  👈
#277
#275
#274
#267
#266
#256
main

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

Join @acco and the rest of your teammates on  Graphite


Add Terracotta profile to build

So we can only build on JDK8, as the current TC APIs require a JDK8 still.

This is no longer needed, client APIs are 1.6 and we use a toolchain mechanism for running tests.


Shell script parsing - # as a command flag makes a bad highlight

VSCode Version: 1.20.0
OS Version:

Steps to Reproduce:

Create a .sh file
Use this command : curl -# $PROXY -X POST -H "Authorization: Bearer ${API_KEY}" "${URL}"
Everything after the # should be grayed out, but it's an argument for the command

Does this issue occur when all extensions are disabled?: Yes/No
yes

Found a way to fix it, add
"begin": "(^\\s+)?(?<=^|\\W)(?=#)(?=-#)"
at line 144 of the shell-unix-bash.tmLanguage.json into the "comment": { section

This issue was moved to atom/language-shellscript#104


Run hammer against MySQL in CI

This ensures a basic level of write performance. It isn't a perfect performance benchmark because the job could be run on different specs of machine, but it's a first foray into getting the hammer running in CI.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 36.02%. Comparing base (46ec9c2) to head (ba9998f).
Report is 60 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #142      +/-   ##
==========================================
+ Coverage   35.80%   36.02%   +0.22%
==========================================
  Files          16       33      +17
  Lines        1363     2823    +1460
==========================================
+ Hits          488     1017     +529
- Misses        801     1696     +895
- Partials       74      110      +36

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


List of languages

Is there a way to display the list of languages in the menu?

No, this component only switch the application language


Problem Number | Title | Language

Title -15 | 3 Sum | JAVA
What will change -Adding a Solution for 3Sum in JAVA
Type of Issue -Adding new Code
Please add/delete options that are not relevant.

[x] Adding New Code
[ ] Improving Code
[ ] Improving Documentation
[ ] Bug Fix

Programming Language
Please add/delete options that are not relevant.

[ ] Python
[ ] C++
[x] Java
[ ] SQL

Self Check

Ask for issue assignment and wait to get assigned to it before making Pull Request.
Add your file in the proper folder
Clean Code and Documentation for better readability
Add Title and Description of the program in the file

:star2: Star it :fork_and_knife:Fork it :handshake: Contribute to it!
Discord server ✉ - https://discord.gg/CXksGdn
Happy Coding,

Can I be assigned this issue please?

can i assigned this issue please?


feat(client): refactor to functional component

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] All the files I changed are in the same world language, for example: only English changes, or only Chinese changes, etc.

In part with #39695

Thanks for the refactor, @Sky020.  The close button does not seem to be closing the donation section and that issue seems to be originated from the second useEffect.
The easiest way to test it would be to  replace   {isDonationSubmitted && donationCloseBtn} with   {donationCloseBtn} and see the close button's behavior.

@ahmadabdolsaheb Excellent catch! Sorry about that, I completely forgot to test that side, and it was a very small typo on my part.

Thanks for your patience, @Sky020. I would re-review and merge as soon as you get the conflict sorted out.

@ahmadabdolsaheb Thank you. I had not even realized there were conflicts on this.
Should be sorted, now.


Fix List Comprehension Syntax

Fixes #495
Changes proposed in this PR:

fix parser
improve test

@mtshiba

Thanks you!


rfxtrx shuts down with error while trying to add new device

Home Assistant release: 0.50.1
Python release: 3.4.2
Component/platform:rfxtrx
Description of problem:
While trying to add a Nexa on/off switch I get the following error:

[homeassistant.components.rfxtrx] rfxtrx: found possible device 0e55d1e2 for 0e55d1e1 with the following configuration:
Jul 31 21:10:19 hassbian hass[4257]: data_bits=4
Jul 31 21:10:19 hassbian hass[4257]: command_on=0x1
Jul 31 21:10:19 hassbian hass[4257]: command_off=0x2
Jul 31 21:10:19 hassbian hass[4257]: #033[0m
Jul 31 21:10:29 hassbian hass[4257]: Exception in thread Thread-13:
Jul 31 21:10:29 hassbian hass[4257]: Traceback (most recent call last):
Jul 31 21:10:29 hassbian hass[4257]: File "/usr/lib/python3.4/threading.py", line 920, in _bootstrap_inner
Jul 31 21:10:29 hassbian hass[4257]: self.run()
Jul 31 21:10:29 hassbian hass[4257]: File "/usr/lib/python3.4/threading.py", line 868, in run
Jul 31 21:10:29 hassbian hass[4257]: self._target(*self._args, **self._kwargs)
Jul 31 21:10:29 hassbian hass[4257]: File "/home/homeassistant/.homeassistant/deps/RFXtrx/init.py", line 686, in _connect
Jul 31 21:10:29 hassbian hass[4257]: self._event_callback(event)
Jul 31 21:10:29 hassbian hass[4257]: File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/rfxtrx.py", line 169, in handle_receive
Jul 31 21:10:29 hassbian hass[4257]: subscriber(event)
Jul 31 21:10:29 hassbian hass[4257]: File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/binary_sensor/rfxtrx.py", line 91, in binary_sensor_update
Jul 31 21:10:29 hassbian hass[4257]: poss_id = slugify(poss_dev.event.device.id_string.lower())
Jul 31 21:10:29 hassbian hass[4257]: AttributeError: 'RfxtrxSwitch' object has no attribute 'event'

Efter I get the error, the rfxtrx-component doesn't seem to function at all.
I also get the same error while trying to add Nexa wall switches.
Expected:
The device added as new unspecified component in Hass.
Problem-relevant configuration.yaml entries and steps to reproduce:

platform: rfxtrx
automatic_add: True

This might have something to do with the fact I got some problems installing an update of Hass. Will get back later today to verify this.

Hi, it seems like the rfxtrx binary sensor component is taking over your switch component.
I guess you have "automatic_add" to True in the rfxtrx binary sensor component. It should be set to False.
Can you try again with "automatic_add" of the rfxtrx binary sensor component set to False?

Thank you for responding.
I tried to do as you said and it seems to work better like that.


VSIX displays Version too short message

This happens when use the eXpandFramework New Project Wizard

eXpand.lab release 19.1.302.4 includes commit VSIX displays Version too short message #418 that relate to this task. Please test if it addresses the problem. If you use nuget add our LAB NugetServer as a nuget package source in VS.
Thanks a lot for your contribution.

Closing issue for age. Feel free to reopen it at any time.
.Thank you for your contribution.


With bastion service disabled terraform fails with prod_bastion_client_cidr_block_allow_list error

With bastion service disabled terraform plan for enterprise-landing-zone and freetrail-landing-zone fail with
Error: No value for required variable
on variables.tf line 249:
249: variable "prod_bastion_client_cidr_block_allow_list" {
The root module input variable "prod_bastion_client_cidr_block_allow_list" is
not set, and has no default value. Use a -var or -var-file command line
argument to provide a value for this variable.

Hey @calorbeer ,
Thanks for reporting issue. We had replicated the issue and working on the fix . We will provide the update on this asap.

Fixed the issue on latest release v2.2.0.


EXTENSION_BACKSLASH_LINE_BREAK is missing

I want to enable EXTENSION_BACKSLASH_LINE_BREAK of blackfriday. But the following config does not work:
[blackfriday]
extensions = ["backslashLineBreak"]

There seems no such entry in blackfridayExtensionMap in helpers/content.go. Can it be fixed?

Due to their similarities, I think I will try to implement this and #1970 in one pull request.

See also russross/blackfriday#163:
EXTENSION_BACKSLASH_LINE_BREAK was added in April 2015 (almost exactly 11 months ago) and is part of CommonMark and is the default for Blackfriday upstream.


Will you integrate with SAM2?

Hoping for that, thanks

Hi @CoderZhangYx, thanks for your interest in our work!
We released efficient track anything by extending EfficientSAM. Please check our Efficient Track Anything, https://github.com/yformer/EfficientTAM


Define slot scope props in VM similar to props

What problem does this feature solve?
Access slot-scope props directly from the VM. Currently, you can't create computeds or watchers on a slot scope prop, and for the VM to access them you'd have to pass them around as arguments.
What does the proposed API look like?
Say you have a list component:
Vue.component('list', {
  render() {
    const items = [1,2,3,4,5]
    return this.$scopedSlots.default({items});
  },
})

Current usage (https://jsfiddle.net/wb6gc2ur/):

  <list>

evens: {{ evens(someProps.items) }}

odds: {{ odds(someProps.items) }}

  </list>

new Vue({
  el: '#app',
  methods: {
    evens(items) {
      return items.filter(n => n % 2 === 0)
    },
    odds(items) {
      return items.filter(n => n % 2 !== 0)
    },
  },
})

Proposed API:

  <list>

evens: {{ evens }}

odds: {{ odds }}

  </list>

new Vue({
  el: '#app',
  slotScope: { // something like this
    default: {
      items: Array,
    }
  },
  computed: {
    slotItems() {
      return this.slotScope.default.items;
    },
    evens() {
      return this.slotItems.filter(n => n % 2 === 0)
    },
    odds() {
      return this.slotItems.filter(n => n % 2 !== 0)
    },
  },
})

Scoped slots are functions. Their slot scope are filled with different arguments each time they are called. If you use multiple <list> component in the current component, which would you expect this.slotScope.default should point to? It's simply not possible.


In Android, when file download, how to get file path ?

Please ask questions like this on Stackoverflow. GitHub issues are only for feature requests and bug reports.


Show all stories from one component on the same page

Hi, it would be great if I could view all stories from the same component on the same page. This would help me a lot to see the general design. for example, I am working on a upload component and I would like to preview all states at the same time. Low prority though. Loving it so far!

In order to do this, we need to configure our data later to work with multiple preview iframes. We discuss some of that here.
See: https://github.com/kadirahq/react-storybook/issues/12
Will work on once we get there.

This can be done with this addon.


Create new roles "Admin" and "Bot" on server startup

Register a new role called "Admin" and "Bot" during start up.
Refer https://github.com/open-metadata/OpenMetadata/tree/main/catalog-rest-service/src/main/resources/json/data/role
Admin and Bot roles MUST NOT have any policy associated with it like other roles.
Any attempts from API calls to associate a policy with Admin or Bot role should return an error.
Refer https://github.com/open-metadata/OpenMetadata/blob/main/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/RoleRepository.java

We should also add bot as role and remove isAdmin and isBot from the User profile.

Updated description to accommodated Bot

I think this is something I can pick up. I want to learn more about the RBAC.

Assigned to you @asdiamond

@mithmatt @asdiamond is this going to be part of 0.9 release?

No it won't be ready.


[models] GLTF loading issues

Didn't see any duplicate issues.
Environment
I'm using the latest Raylib version from master branch on ubuntu 20.10, gcc with very modern hardware. Models exported with blender 2.91.2
First issue
Loading any GLTF file I've tried using the LoadModel() function causes a segmentation fault roughly half of the time, the problem gets much worse when loading multiple files. Sometimes it works but mostly it crashes at launch of the program.
Compiling with the following command, all code is in a single .cpp file:
g++ *.cpp -w -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 -o test
Some potentially relevant info from the terminal when it crashes:
INFO: FILEIO: [resources/models/characters/wehrmacht_soldier.glb] File loaded successfully
INFO: MODEL: [resources/models/characters/wehrmacht_soldier.glb] glTF meshes (glb) count: 3
INFO: MODEL: [resources/models/characters/wehrmacht_soldier.glb] glTF materials (glb) count: 1
Segmentation fault (core dumped)

Output when I run the program through gdb:
Program received signal SIGSEGV, Segmentation fault.
0x00005555555cdbfc in LoadGLTF (
    fileName=0x55555563a0c0 "resources/models/characters/wehrmacht_soldier.glb") at /home/schizo/raylib/src/models.c:3845
3845    /home/schizo/raylib/src/models.c: No such file or directory.
(gdb)

Secondary issue
loaded GLTF models don't have applied textures when exported from blender. This is likely due to blender encoding it as .jpg but I haven't been able to load textures without explicitly loading the texture and applying it to the material regardless of export settings.
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <math.h>
#include "raylib.h"
#include "raymath.h"
#define RAYGUI_IMPLEMENTATION
#define RAYGUI_SUPPORT_ICONS
#include "lib/raygui.h"
#undef RAYGUI_IMPLEMENTATION

typedef struct {
    Model m_model;
    Texture2D m_texture;
    Transform m_transform;
} Soldier;

Soldier* SpawnSoldier(const char* model_path, const char* tex_path)
{
    Soldier* soldier = (Soldier*)malloc(sizeof(Soldier));

    soldier->m_model = LoadModel(model_path);
    soldier->m_texture = LoadTexture(tex_path);
    for(int i=0;i<soldier->m_model.materialCount;++i)
        soldier->m_model.materials[i].maps[MAP_DIFFUSE].texture = soldier->m_texture;

    soldier->m_transform.translation = (Vector3){0,0,0};

    return soldier;
}
void DestroySoldier(Soldier* soldier)
{
    UnloadTexture(soldier->m_texture);
    UnloadModel(soldier->m_model);
    free(soldier);
}

int main()
{
    SetConfigFlags(FLAG_WINDOW_RESIZABLE);
	InitWindow(1280,720, "Raylib");
	SetTargetFPS(60);

    Camera camera = { 0 };
    camera.position = (Vector3){ 10, 1.8f, 10 };
    camera.target = (Vector3){ 0.0f, 0.0f, 0.0f };
    camera.up = (Vector3){ 0.0f, 1.0f, 0.0f };
    camera.fovy = 60.0f;
    camera.type = CAMERA_PERSPECTIVE;
    SetCameraMode(camera, CAMERA_FREE);

    Soldier* wehrmacht_guy = SpawnSoldier("resources/models/characters/wehrmacht_soldier.glb", "resources/models/characters/wehrmacht_d.png");
    Soldier* soviet_guy = SpawnSoldier("resources/models/characters/soviet_soldier.glb", "resources/models/characters/soviet_d.png");

    wehrmacht_guy->m_transform.translation = (Vector3){-2,0,0};
    soviet_guy->m_transform.translation = (Vector3){2,0,0};

    while (!WindowShouldClose())
    {
        UpdateCamera(&camera);

        BeginDrawing();
            ClearBackground(RAYWHITE);

            BeginMode3D(camera);
            DrawGrid(50, 10.0f);
            DrawPlane((Vector3){0,-0.05f,0}, (Vector2){500,500}, DARKGREEN);
            DrawCube((Vector3){4,1,0},1,2,0.5f,GOLD);

            DrawModel(wehrmacht_guy->m_model, wehrmacht_guy->m_transform.translation, 1, WHITE);
            DrawModel(soviet_guy->m_model, soviet_guy->m_transform.translation, 1, WHITE);

            EndMode3D();

        EndDrawing();
    }

    DestroySoldier(wehrmacht_guy);
    DestroySoldier(soviet_guy);
    CloseWindow();
	return 0;
}

Screenshot from when it doesn't crash

I haven't done any 3D importing with Raylib, but have some experience working with Godot. Have you tried Gltf Embedded?

@homeless-schizo-retard Do you have a problem sharing your glb model? I can see that there is some warning there "glTF bones in unexpected format" and we can further investigate that.

@homeless-schizo-retard Do you have a problem sharing your glb model? I can see that there is some warning there "glTF bones in unexpected format" and we can further investigate that.

Well the problem also persists with any gltf file I've tried downloading from the net or exporting with blender. I've treid glb, gltf + bin and gltf as well as different export settings.

@homeless-schizo-retard Please, could you provide some sample file you verified that does not work properly?

@raysan5 Here is an archive of a couple that I've tried working with character 7z files

Hi i also wanted to confirm, that i also cannot load gltf (and even obj files) on ubuntu 20.04 (master branch).
Even the examples wont work and default to the cube

3.0.0 was ok

@rennurb3000 I fixed the last issue with the cube

I didn't have a problem loading the models you provided. One of the models doesn't have an embedded texture but otherwise all worked as expected on my side. I compile on windows using cmake and visual studio though so I guess someone with a linux environment could be more helpful.

I didn't have a problem loading the models you provided. One of the models doesn't have an embedded texture but otherwise all worked as expected on my side. I compile on windows using cmake and visual studio though so I guess someone with a linux environment could be more helpful.

For me sometimes it works and sometimes it segfaults. If you try and load multiple it's way more likely to segfault

@homeless-schizo-retard I'm sorry I just cannot reproduce. I can spin up a virtual machine at some point to test it under linux but I couldn't reproduce the segfault even 1 out of 20 times. I also tried both Visual C++ and MinGW on windows. This crash is most probably some linux or build setup issue.


Documentation is unclear on how to use exemptions

I'm confused about how do I create/manage exemptions with PAC.
Documentation mentions folder exemptions but neither starter kit no any examples are shown where the folder shall be located at and what hierarchy shall look like. Supplemental scripts are not working either (submitted PR for those). I do have now export of existing exemption definitions but not sure what to do with them.

Create a folder for each EPAC Environment (see global-settings.jsonc) -- names must match exactly. Create a CSV file with the exemptions.

Can be either CSV or JSON?
Folder will be under Definitions? Like below?
What file shall be used or it does not matter? Output produced 2 files named active-exemptions and all-exemptions, what is difference between those?

Or both (I recommend you pick CSV
I showed you in the above screen shot.
I would use active-exemptions. It removes expired exemptions (they are included in the all-exemptions file), allowing EPAC to clean it up (delete the expired ones)
I tagged this issue with "documentation" and will address the gap in v7.0 (ETA next two weeks)

Having both JSON and CSV located in the same folder would not cause issues with logic? My undestanding it's the same data, just in different format.

It will calculate the union (eliminating duplicates). I would stick with one file in one format. Or if it get too large, stick with one format.

Yes, I planned to use only one but your example shown that you have both under policyExemptions folder.

Keeping it open as awork item


Support for schematics file format

Description

Added auxiliary crate valence_schem that supports copying and pasting schematics to an Instance and also allows for parsing them from a Compound and serializing it back to one

Test Plan

The examples schem_loading and schem_saving are sufficient for testing. Also, as for a third party created schematic, I used SimpleSpongeSchematics to do so.

Steps:

Create a Schematic file using the sponge mod above
Start the schem_loading with the path of your schematic, like so: cargo r --example schem_loading -- "my/path/to/something_cool.schem"

Related

Closes #193

I think would be good to have an example schematic in valence/assets directory.

I think would be good to have an example schematic in valence/assets directory.

I agree 👍. Will do once I get back at it

Question: do we want to support all spec versions? (1-3)
I don't think we should for serialization, but for deserialization probably. The deserialization would then check the version and act accordingly.
So basically by deserializing an older schematic and serializing it again, we would upgrade it to version 3. I don't think we should support DataVersion (meaning knowing how to handle 1.8 schematics with blocks like minecraft:planks) but probably the Version property. What do you think?

I don't think we should support DataVersion (meaning knowing how to handle 1.8 schematics with blocks like minecraft:planks) but probably the Version property. What do you think?

That seems like the most reasonable thing to do now.

@rj00a ready for review

Currently working on a redesign of the Instance API to fix a number of issues. Once that's mostly finished I can take a closer look at this and see what impact it has.

I've (finally) finished the redesign in #402, so we can move forward with this.

I've (finally) finished the redesign in #402, so we can move forward with this.

Ok, I updated the branch to main


Add MDX support

It’d be amazing to have support for MDX, which is a mix of Markdown + JavaScript/JSX.

Please see: https://highlightjs.readthedocs.io/en/latest/language-requests.html
If you'd like to create support for this yourself as a language add-on you're more than welcome to do so and we can link to your repo (or even host it)!


Add script to support FontSquirrel fonts

This task is to create FontFormulas for all FontSquirrel fonts.
We can use font-squirrel-downloader (or fontsquirrel_dl to download all fonts, then create formulas for them.
We do need to filter out the fonts that are not licensed for Desktop/App/Ebooks to prevent copyright issues.

Update

Now https://www.fontsquirrel.com/ provide a list of APIs:

https://www.fontsquirrel.com/api/classifications - provide a classification of fonts according to "fontsquirrel" vision
https://www.fontsquirrel.com/api/fontlist/{all|specific class} - to get metatada about list of fonts. Example: https://www.fontsquirrel.com/api/fontlist/Typewriter
http://www.fontsquirrel.com/api/familyinfo/{family_urlname} - to get metadata about a specific font. Example: https://www.fontsquirrel.com/api/familyinfo/alegreya

Problems/Issues

Unfortunately API doesn't provide metadata about font licensing (this can be scraped from the web page only)
There is no package for all font squirrel fonts each one call can be downloaded separately. Probably we need to adapt our formula format to handle this

Possible implementation

Parse https://www.fontsquirrel.com/fonts/list/find_fonts?filter[license][0]=open to get list of font names

Checkout ruby frameworks that provide good API for web page parsing
It should handle pagination

Query the rest of the data with http://www.fontsquirrel.com/api/familyinfo/{family_urlname} API

@ronaldtse could you please triage this ticket how important it is


Request for .yet source files

Could you please add the .yet source files for the compiled .yes files to the sourcecode.
Namely _https://files.alkitab.app/addon/yes2/en-ukjv--1.yes.gz_, which I want to add Pericope headings to. But having the source files for the other bibles would be beneficial also.
Many thanks.

Please contact me at<EMAIL_ADDRESS>


Consistent Game Crash when using freecam

Title, just testing out a custom modpack I created and keep using free cam to test it out and see how it works and when I try to go through blocks and look around underneath me it causes the game to crash with this error. Was able to duplicate it by just going into a different area and just tried to use the free cam to explore beneath me.
crash-2022-04-28_19.04.23-client.txt
crash-2022-04-28_18.42.13-client.txt

This is likely being caused by one of your mods. Please try removing them one at a time until it stops crashing to narrow it down.


When I create a scheduler directly through the api, a NullPointerException will appear when the processInstancePriority field is not passed. he is @RequestParam(value = "processInstancePriority", required = false)

error line

Do you need to modify it to @RequestParam(value = "processInstancePriority", required = true)

@shenqicheng100 which versin?

@ shenqicheng100哪个版本？

1.3.2-release

@ shenqicheng100哪个版本？

1.3.2-release

Hi, @shenqicheng100
I reproduce this error in 1.3.1-release.[1]
If you are interested in fixing this bug, please leave a message.
[1]

@ shenqicheng100哪个版本？

1.3.2发布

嗨，@ shenqicheng100，
我在1.3.1版本中重现此错误。[1]
如果您有兴趣修复此错误，请留言。
[1]

Sorry for the late reply, the company has a lot of things these days.


Add support for Xiaomi Smart Diffuser

https://home.miot-spec.com/spec/xiaomi.diffuser.xw002

Thanks!

https://github.com/AlexxIT/XiaomiGateway3/releases/tag/v4.0.7


v3.4 session key negotiation failed

I'm trying to get status from "ZY-M100-WIFI milli wave sonsor".
But it's not well.
script is
Example Usage of TinyTuya
import tinytuya
d = tinytuya.OutletDevice('DEVICE_ID_HERE', 'IP_ADDRESS_HERE', 'LOCAL_KEY_HERE')
d.set_version(3.4)
data = d.status()
print('Device status: %r' % data)

Please help me.
python mm_tes.py
DEBUG:TinyTuya [1.12.10]
DEBUG:Python 3.11.3 (main, Jun  1 2023, 06:45:39) [GCC 8.4.0] on linux
DEBUG:Using PyCrypto (3, 9, '7')
DEBUG:status() entry (dev_type is default)
DEBUG:final payload_dict for 'eb744fa24f4bf4d5b1elsa' ('v3.4'/'default'): {1: {'command': {'gwId': '', 'devId': '', 'uid': '', 't': ''}}, 7: {'command': {'protocol': 5, 't': 'int', 'data': {}}, 'command_override': 13}, 8: {'command': {'gwId': '', 'devId': ''}}, 9: {'command': {'gwId': '', 'devId': ''}}, 10: {'command': {}, 'command_override': 16}, 13: {'command': {'protocol': 5, 't': 'int', 'data': {}}}, 16: {'command': {}}, 18: {'command': {'dpId': [18, 19, 20]}}, 64: {'command': {'reqType': '', 'data': {}}}}
DEBUG:building command 10 payload=b'{}'
DEBUG:sending payload quick
DEBUG:final payload: b'0123456789abcdef'
DEBUG:payload encrypted=b'000055aa0000000100000003000000444585c45fb6194b854078f69e9102a332b939dd8e6dce29af713ab327dc0f417be05300d7a80c77cad41a7d3691fa63ee7f2b5ba55f0866ad473896497d9780db0000aa55'
DEBUG:received null payload (None), fetch new one - 1 retries remaining
DEBUG:_recv_all(): no data? b''
DEBUG:_recv_all(): no data? b''
DEBUG:received null payload (None) but out of recv retries, giving up
DEBUG:session key negotiation failed on step 1
DEBUG:ERROR Check device key or version - 914 - payload: null
DEBUG:status() received data={'Error': 'Check device key or version', 'Err': '914', 'Payload': None}
Device status: {'Error': 'Check device key or version', 'Err': '914', 'Payload': None}

Hi @warpkwd
Two ideas:

Did you use the wizard to get the local key?  If so, what does it do during the device polling?  I would suggest checking the local key and the version (3.4).

python3 -m tinytuya wizard -d

Run the monitoring tool to see if it picks up anything more: https://github.com/jasonacox/tinytuya/blob/master/examples/monitor.py

Thanks@jasonacox
Is localkey change  when changed ip address?
I got ok response as getting local key by getting new scan.
Thanks a lot.

The localkey will change anytime you use SmartLife app to pair the Tuya device (e.g. connect via "Add Device"). I don't know if that is what happened in your case, but I'm glad you were able to get it to work!


feat(security): secure containers run as non-root

PR Checklist
Please check if your PR fulfills the following requirements:

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

If your build fails due to your commit message not passing the build checks, please review the guidelines here: https://github.com/edgexfoundry/edgex-go/blob/master/.github/Contributing.md.
What is the current behavior?
Docker containers run as root user.
Issue Number:
#2983
What is the new behavior?
Modified the dockerfiles of various services to create/run as
"edgex_user:edgex_group".
Modified the entrypoint script of security-secretstore-setup to set
the appropriate ownership of the /tmp/edgex/secrets directory that's
mounted to retrieve secrets in various services used throughout.
Removed a security concern from the entrypoint script of
security-secretstore-setup that allowed root level CLI execution access
to anyone that could add parameters via CMD in the dockerfile.
Does this PR introduce a breaking change?

[ ] Yes
[X] No

New Imports

[ ] Yes
[X] No

Specific Instructions
Are there any specific instructions or things that should be known prior to reviewing?
Other information

@lenny-intel must be some kind of a Docker Jedi - he sat back, watched me do all these updates, and then get it working - then he said, "wouldn't it be easier if we just put this in the compose?".
Backed out all my Dockerfile changes. Recent changes are checked in.
@jim-wang-intel @bnevis-i

@lenny-intel must be some kind of a Docker Jedi - he sat back, watched me do all these updates, and then get it working - then he said, "wouldn't it be easier if we just put this in the compose?".
Backed out all my Dockerfile changes. Recent changes are checked in.
@jim-wang-intel @bnevis-i

Codecov Report

Merging #3003 (d164d0f) into master (6aacc02) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #3003   +/-   ##
=======================================
  Coverage   40.21%   40.21%
=======================================
  Files         157      157
  Lines       13673    13673
=======================================
  Hits         5498     5498
  Misses       7852     7852
  Partials      323      323

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 6aacc02...d164d0f. Read the comment docs.

Codecov Report

Merging #3003 (d164d0f) into master (6aacc02) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #3003   +/-   ##
=======================================
  Coverage   40.21%   40.21%
=======================================
  Files         157      157
  Lines       13673    13673
=======================================
  Hits         5498     5498
  Misses       7852     7852
  Partials      323      323

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 6aacc02...d164d0f. Read the comment docs.


Instance Variables are persisted between specs 2.8.0

Running a test suite, I found custom matchers were failing due to instance variables retaining there values between each example.
Here is a contrived example
require "rspec"

describe "Forget me please" do
  it "First Spec" do
    puts "First"
    "rspec".should forget_instance_variables
  end
  it "Second Spec" do
    puts "Second"
    "rspec".should forget_instance_variables
  end
end

RSpec::Matchers.define :forget_instance_variables do
  match do |expected|
    p @an_instance_variable
    @an_instance_variable = true
    true
  end
end

and here is the output (first using rspec 2.7.0 and then using 2.8.0). The True is remembered on the second spec run on 2.8.0.
nigelr@ProPark ~/Rails/tmp/chain4  $ rspec spec/
First
nil
.Second
nil
.

Finished in 0.10964 seconds
2 examples, 0 failures
nigelr@ProPark ~/Rails/tmp/chain4  $ gem list rspec

*** LOCAL GEMS ***

rspec (2.7.0)
rspec-core (2.7.1, 2.6.4, 2.6.3, 2.5.1)
rspec-expectations (2.7.0, 2.6.0, 2.5.0)
rspec-mocks (2.7.0, 2.6.0, 2.5.0)
rspec-rails (2.6.1, 2.6.0, 2.5.0)
nigelr@ProPark ~/Rails/tmp/chain4  $ rspec spec/
First
nil
.Second
nil
.

Finished in 0.11027 seconds
2 examples, 0 failures
nigelr@ProPark ~/Rails/tmp/chain4  $ gem install rspec
Fetching: rspec-core-2.8.0.gem (100%)
Fetching: rspec-expectations-2.8.0.gem (100%)
Fetching: rspec-mocks-2.8.0.gem (100%)
Fetching: rspec-2.8.0.gem (100%)
Successfully installed rspec-core-2.8.0
Successfully installed rspec-expectations-2.8.0
Successfully installed rspec-mocks-2.8.0
Successfully installed rspec-2.8.0
4 gems installed
nigelr@ProPark ~/Rails/tmp/chain4  $ rspec spec/
First
nil
.Second
true
.

Finished in 0.00106 seconds
2 examples, 0 failures

This caused issues in a custom matcher with a chain feature which set an instance variable, the next spec that did not use that chain would fail as it has the instance variable set.

Dup of #104.


Bump to arkworks-0.4.0

Fixes #125

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Refactor: Separate @idraw/renderer from @idraw/core

Separate @idraw/renderer from @idraw/core

Codecov Report

Merging #116 (be7f4ae) into main (57c7994) will decrease coverage by 8.44%.
The diff coverage is 1.12%.

@@            Coverage Diff             @@
##             main     #116      +/-   ##
==========================================
- Coverage   39.42%   30.97%   -8.45%
==========================================
  Files          65       88      +23
  Lines        2501     3209     +708
  Branches      531      709     +178
==========================================
+ Hits          986      994       +8
- Misses       1128     1650     +522
- Partials      387      565     +178

Flag
Coverage Δ

unittests
30.97% <1.12%> (-8.45%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

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