Use flag to determine whether baseline flux comes from MCEq or pi_hon…

…da_ip stage

Hey, wouldn't it make more sense to have the nominal flux calculation in a separate stage? So it could be transparently switched out between honda and MCEq and no need for flags or anything like it

Yes, I think that would be a cleaner solution. My only concern is the loading of the spline tables - this would be done twice then, once in the nominal flux calculation stage and once again in the flux systematic stage... unless you can guide me or provide an example of how we could load once and access across multiple stages

I think there is also a need to re-write the honda_ip and barr_simple stages - right now honda_ip calculates both nu and nubar flux for all species (regardless of whether they are nu or nubar) and so that's what barr_simple works from as well. I don't see why this is necessary? And it makes compatibility with mceq_barr stage annoying.
How would you feel about just keeping the flag I implemented for now, and then in a few weeks I'll totally revamp the flux stages to make them all cleaner and easier to  mix and match? This would include a new, separate stage for MCEq-based nominal flux calculation.  I am worried about meeting oscnext deadlines otherwise....

fine with me. We don't need the best possible solution right now, can always improve. Just need to make sure the current one does what it's supposed to

Any reason to not merge this, @philippeller ?

Yes, don't merge - @sblot wanted to close this PR...there is a new one coming

Yup, sorry closing now.


Use last project when none detected

Restores <<LAST_PROJECT>> special keyword when project not detected from url.

What does the <<LAST_PROJECT>> keyword do?

What does the <<LAST_PROJECT>> keyword do?

It tells the system were the time is being spent. From the browser extension.

Sure, but what is it resolved to? If you send <<LAST_PROJECT>> as the project property, what will be shown on WakaTime then?

Do I understand correctly that now sites will not be labeled as Unknown project? If so, I would like to have a toggle for this behavior. I think it's better to have a lot of sites in Unknown project and manually sort them out by project, than to have them referred to a previous working project


[PO22] Initialize repo

Here we are yet again!
I literally just copy pasted and tried to understand last years' unit testing. I got it working, although JUnit is way too verbose on errors, I don't know if that is meant to happen. I also updated junit to version 1.9.0. I commented out the reflection bits as I am not sure how Tagus paper is this year and I wanted to keep it simple so people can contribute asap.
Here is an example of JUnit logs on failed tests, it's doube printing the same information, I don't know if this normal. Let me know and thank you for the repo, tests and help in advance!

JUnit is very verbose, I don't think there's a way around it ;/


Add no_std compatibility

Vendors floating point arithmetic/trig implementations used in the micromath crate as an F32Ext and uses them when std isn't enabled.
Closes #1

Tried to link this on a Cortex-M4 and ran into the following...
  = note: rust-lld: error: undefined symbol: fminf
          >>> referenced by f32.rs:460 (/rustc/c20d7eecbc0928b57da8fe30b2ef8528e2bdd5be/src/libcore/num/f32.rs:460)
          >>>               /Users/bascule/src/atsamd/boards/trellis_m4/target/thumbv7em-none-eabihf/debug/examples/neopixel_colorous-0d3d29f6f2ab6d94.neopixel_colorous.avgl4jo5-cgu.0.rcgu.o:(core::f32::_$LT$impl$u20$f32$GT$::min::h0fc7b538582a639e)

          rust-lld: error: undefined symbol: fmaxf
          >>> referenced by f32.rs:444 (/rustc/c20d7eecbc0928b57da8fe30b2ef8528e2bdd5be/src/libcore/num/f32.rs:444)
          >>>               /Users/bascule/src/atsamd/boards/trellis_m4/target/thumbv7em-none-eabihf/debug/examples/neopixel_colorous-0d3d29f6f2ab6d94.neopixel_colorous.avgl4jo5-cgu.0.rcgu.o:(core::f32::_$LT$impl$u20$f32$GT$::max::hf33e988bb98f37ee)

With the changes in 4a3fb1a to eliminate the usage of f32::{min, max}, I was able to link and run this on a Cortex M4 device:

Okay, so colorous::TURBO is working but some of the others aren't. Seems cubehelix.rs, gradient.rs, and sequential_multi.rs all use min/max as well...

Awesome, thanks for merging!
It's a bit tricky to test linking as it doesn't show up until you use colorous in another bin crate. I could put together a small script that creates such a crate and tries to link with colorous if you're interested.

That would be great.

It looks like this is pixel perfect for the majority of argument values in the color schemes that rely on f32 math.

std
no_std
diff

It looks like the fminf/fmax thing may be a bug in compiler-builtins. It seems LLVM is emitting them as intrinsics but they're not getting properly exported.
Relevant issue: https://github.com/rust-lang/compiler-builtins/issues/354


Add support for specifying LIB_SUFFIX to cmake.

This makes sure libraries end up in the correct place on systems
that use for example lib64 as directory name for 64bit libraries.

Thanks


Remove sprintf and everything that required it

Chained to #1063.
Doing this in two steps to allow rollback, and this PR is removing some functionality (the other is pure refactoring).
Please do not merge this PR while #1063 is outstanding.

 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.


Linux updates 2021-07-20 (CVE-2021-33909)

Motivation for this change
These fix CVE-2021-33909, a local root vulnerability.  Given how serious local root is, I'm targeting master directly here instead of staging as usual.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Relase notes)

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

[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg test simple

Result of nixpkgs-review pr 130807 at 55a230a8 run on aarch64-linux 1

50 packages marked as broken and skipped:

linuxPackages_testing_bcachefs.acpi_call
linuxPackages_testing_bcachefs.akvcam
linuxPackages_testing_bcachefs.anbox
linuxPackages_testing_bcachefs.apfs
linuxPackages_testing_bcachefs.batman_adv
linuxPackages_testing_bcachefs.bcc
linuxPackages_testing_bcachefs.can-isotp
linuxPackages_testing_bcachefs.cryptodev
linuxPackages_testing_bcachefs.ddcci-driver
linuxPackages_testing_bcachefs.digimend
linuxPackages_testing_bcachefs.dpdk-kmods
linuxPackages_testing_bcachefs.ena
linuxPackages_testing_bcachefs.evdi
linuxPackages_testing_bcachefs.fwts-efi-runtime
linuxPackages_testing_bcachefs.gcadapter-oc-kmod
linuxPackages_testing_bcachefs.hid-nintendo
linuxPackages_testing_bcachefs.jool
linuxPackages_testing_bcachefs.lttng-modules
linuxPackages_testing_bcachefs.mba6x_bl
linuxPackages_testing_bcachefs.mbp2018-bridge-drv
linuxPackages_testing_bcachefs.mwprocapture
linuxPackages_testing_bcachefs.mxu11x0
linuxPackages_testing_bcachefs.netatop
linuxPackages_testing_bcachefs.oci-seccomp-bpf-hook
linuxPackages_testing_bcachefs.openafs
linuxPackages_testing_bcachefs.openafs_1_8
linuxPackages_testing_bcachefs.openafs_1_9
linuxPackages_testing_bcachefs.openrazer
linuxPackages_testing_bcachefs.r8125
linuxPackages_testing_bcachefs.r8168
linuxPackages_testing_bcachefs.rtl8192eu
linuxPackages_testing_bcachefs.rtl8723bs
linuxPackages_testing_bcachefs.rtl8812au
linuxPackages_testing_bcachefs.rtl8821ce
linuxPackages_testing_bcachefs.rtl8821cu
linuxPackages_testing_bcachefs.rtl88x2bu
linuxPackages_testing_bcachefs.rtlwifi_new
linuxPackages_testing_bcachefs.rtw88
linuxPackages_testing_bcachefs.rtw89
linuxPackages_testing_bcachefs.sch_cake
linuxPackages_testing_bcachefs.systemtap
linuxPackages_testing_bcachefs.tuxedo-keyboard
linuxPackages_testing_bcachefs.v4l2loopback
linuxPackages_testing_bcachefs.veikk-linux-driver
linuxPackages_testing_bcachefs.vhba
linuxPackages_testing_bcachefs.xmm7360-pci
linuxPackages_testing_bcachefs.xpadneo
linuxPackages_testing_bcachefs.zfs
linuxPackages_testing_bcachefs.zfsStable
linuxPackages_testing_bcachefs.zfsUnstable

23 packages failed to build:

linux_4_4 (linuxPackages_4_4.kernel)
linuxPackages_4_4.mbp2018-bridge-drv
linuxPackages_4_4.mwprocapture
linuxPackages_4_4.systemtap
linuxPackages_4_4.veikk-linux-driver
linuxPackages_4_4.xmm7360-pci
linux_4_9 (linuxPackages_4_9.kernel)
linuxPackages_4_9.mbp2018-bridge-drv
linuxPackages_4_9.mwprocapture
linuxPackages_4_9.systemtap
linuxPackages_4_9.veikk-linux-driver
linuxPackages_4_9.xmm7360-pci
linuxPackages_5_4.mwprocapture
linuxPackages_5_4.mxu11x0
linux_latest_hardened (linuxPackages_latest_hardened.kernel)
linuxPackages_latest_hardened.mbp2018-bridge-drv
linuxPackages_latest_hardened.mwprocapture
linuxPackages_latest_hardened.mxu11x0
linuxPackages_latest_hardened.openafs (linuxPackages_latest_hardened.openafs_1_8)
linuxPackages_latest_hardened.openafs_1_9
linuxPackages_latest_hardened.systemtap
linuxPackages_latest_hardened.veikk-linux-driver
linuxPackages_latest_hardened.xmm7360-pci

601 packages skipped due to time constraints:

bpftools
cargo-flamegraph
crosvm
cryptodev (linuxPackages_4_9.cryptodev)
freefall
gnome.gnome-applets
gpio-utils
linux (linuxPackages.kernel ,linuxPackages_5_10.kernel ,linux_5_10)
linux-libre (linuxPackages-libre.kernel)
linuxPackages-libre.acpi_call
...

5 packages built successfully:

linux_5_4 (linuxPackages_5_4.kernel)
linuxPackages_5_4.mbp2018-bridge-drv
linuxPackages_5_4.systemtap
linuxPackages_5_4.veikk-linux-driver
linuxPackages_5_4.xmm7360-pci

Note that build failures may predate this PR, and could be nondeterministic or hardware dependent.
Please exercise your independent judgement. Does something look off? Please file an issue or reach out on IRC.

See https://github.com/NixOS/nixpkgs/pull/130845.
Next time, title the pull request Kernels instead of Linux updates so that it can be found via GitHub search. Linux updates also usually target master instead of staging. Also, https://github.com/NixOS/nixpkgs/pull/130281#issuecomment-881676681.

Next time, title the pull request Kernels instead of Linux updates

That's an unfortunate naming convention -- Linux isn't the only kernel we have in Nixpkgs.  FWIW, I usually search for the version numbers, and that tends to be much more reliable than expecting everybody to use exactly the same undocumented PR title format.

Also, https://github.com/NixOS/nixpkgs/pull/130281#issuecomment-881676681

Linking to a comment that is itself just three other links isn't making it easy for me to figure out what you're trying to tell me.  The comments you linked to seem to be about not trying to update hardened at the same time as upstream, but I didn't do that here?

Hardened depends on upstream Linux, so updating Linux without a corresponding hardened patch breaks packages. I think the hardened patches should be separated or dropped because they block updates for known security vulnerabilities.

Is the hardened linux kernel build failing because of this PR? The build log looks like that could have happened sometime in the past. In any case: Is it a blocker for this PR? If a stable update of the kernel versions breaks the hardened kernel it should probably be decoupled and marked as known vulnerable.

Closing in favor of #130845 which includes hardening patches.

Hardened depends on upstream Linux, so updating Linux without a corresponding hardened patch breaks packages.

This is fine IMO.  But decoupling or removing them would also be fine.


When I tried example, it showed EntryPointNotFoundException

Does anybody happen before?

Please install v2.3.1.

I install v2.3.1 shown the same error.  Is there any other solution?

Can you try download this example project?


Tests fail with<EMAIL_ADDRESS>

follow up for https://github.com/hoodiehq/pouchdb-hoodie-api/pull/75#issuecomment-139851044
Just checked it locally and could reproduce it with<EMAIL_ADDRESS>but not with 4.0.1. @nickcolley are you looking into this already? It must have be something with the db.destroy() call here: https://github.com/hoodiehq/pouchdb-hoodie-api/blob/master/clear.js#L11

fyi: https://github.com/pouchdb/pouchdb/issues/4339

@gr2m think it's todo with the stateless constructor but yeah I ran into the same thing.

Okay, so a way around this would be to re-initialize the db instance on destroy. In the hoodie API, we don't have the option to manually re-initialize the hoodie.store API, so it must happen auto-magically :tm:
No idea how though

Is there a an alternative to db.destroy without performance issues in PouchDB?

We have:

https://github.com/marten-de-vries/pouchdb-erase - Loops over all docs and deletes them (Don't think this'll work)
https://github.com/pouchdb/pouchdb/issues/802 - Purge, not currently implemented but a highly requested feature, this is what I think hoodie needs for a non-hacky solution.

Unless we can impliement purge I'd think we'd have to re instantiate the database ourselves.

Okay, we throw an error in PouchDB now, so this will mean this test wont hang any more.

could you check locally? Is the new PouchDB version out yet?

No, it's not released yet. But 5.3.0 should have the fix.


Add a way to only include specific classes

The generated SDK library is huge, ~25mb in my case. It contains lots of code I am not interesting in. I think if we could have a way to only include specific classes it would be MUCH smaller. Is that possible?

Yes, it is possible. I will try to add a whitelist for classes.

Removed the creation of proxy types for the entire mscorlib by default. Also added the ability to create proxy types for certain classes. This doesn't work very well because it creates default types for parent classes and classes that are used in fields/methods. However, this can reduce a couple of megabytes. In my example for your game it turned out to be 6.5 mb.

Thank you, I'll try it out on some more games. This is an awesome project, nice job!

fyi, I pulled your changes but I cannot build SDK generator because VS claims Arguments is not declared / found. Did you forgot to include something in your commit?

https://github.com/BadRyuner/MonoTrainer/blob/master/SDKGenerator/Program.cs#L44


Bump AWS CDK from 2.84.0 to 2.90.0

I would like to use a CDK construct that changed between the two releases. Would it be possible to bump the version number on the CDK?
Thank you :D

Yup taking a look

Thanks @masonbrothers!
Closed in favour of #3217


DHO Creation Wizard Alpha Version

Summary
As the DHO Dev Team I want to use the creation wizard to create DHOs.
AC
Please add the following steps for the Alpha Version and hide the other screens:
Step 1: General Info:

[x] Title: Organization Name
[x] Placeholder Copy Field: The display name of your organization (max. 50 character)
[x] Title: Organization Purpose
[x] Placeholder Copy Field: Briefly explain what your DAO is all about (max. 300 characters)

Step 2: Token

[x] Title: Name your Token
[x] Placeholder copy field: Utility Token Name (max 7 characters, uppercase A-Z)
[x] Remove number of digits field (default is 4)
[x] Hide Total Amount and Value fields
[x] Hide Voice, Treasury and Additional Token fields for now

Step 3: Launch Team

[x] Title: Launch team
[x] Copy: The initial launch team is critical for your DAO. The people you list here will have access to configure the DAO, create proposals and enroll other members. Make sure to provide us with the emails of the launch team - in case they do not have a Telos account yet, we can send them a link to create an account. This makes it easier for you and your team to get started from day 1.
[x] Fields: Name*, Email*, Telos / SEEDS Account, Discord
[x] * = mandatory fields
[x] Add more / Remove Accounts

Step 4: Voting

[x] Hide for Alpha

Step 5: Compensation

[x] Hide for Alpha

Step 6: Templates (will probably be step 4 and if users chose a template we don't need voting and compensation. If users don't chose a template we need voting and compensation)

[x] Hide for Alpha

Step 7: Design

[x] Title: Design your DAO
[x] Copy: The logo, copy and colours can be changed later in the configuration page.
[x] Hide all fields except:
[x] Logo (max 3MB)
[x] Primary Colour: Colour picker
[x] Secondary Colour: Colour picker
[x] All other fields will probably be hidden and users can find it in the configuration page and update the headers, copy, etc... there

https://xd.adobe.com/view/7cc1de2c-4b1e-466b-8ac4-eb37f309c3bb-2992/screen/d5c95ab2-8d69-4b99-ac5c-ea2c2e0ac5b8/

https://xd.adobe.com/view/7cc1de2c-4b1e-466b-8ac4-eb37f309c3bb-2992/screen/d5c95ab2-8d69-4b99-ac5c-ea2c2e0ac5b8/
@arsenijesavic I got the new design

@arsenijesavic we need to think about how to validate the Token Names in the form in the Front End - every token can only be used once. So please check with @n13 and @Gerard097 how we can check if a token name has already been taken.
Also: is this sustainable to only have 5 letters? the combinations will be pretty quickly exhausted, no? @sceenius

@leonieherma1 What are we missing here ?

@arsenijesavic see comment above (about token validation)


error running tasks: deadline exceeded executing task FloatingIP/fip-api.dev.k8s.local. Example error: Failed to create floating IP: CreateL3FloatingIP: create L3 floating IP failed: Resource not found

I am running into an issue where kops is unable to execute a task related to assigning/creating a floating ip. I have also created an issue at the kops repository (here) because I think this task is also failing on the cli but seems to resolve itself regardless of the error. (floating ip is created/assigned) It seems this provider is more strict, and is really expecting the task to complete.
Error:
error running tasks: deadline exceeded executing task FloatingIP/fip-api.dev.k8s.local. Example error: Failed to create floating IP: CreateL3FloatingIP: create L3 floating IP failed: Resource not found

I can guarantee that openstack credentials are working, as I am seeing other resources being created.

Hey @wesselvdv at least the credentials issue was fixed.
Do you have more details ? Does the cluster finishes by being created (maybe after applying the tf code multiple times) ?
The lifecycle should apply the cluster spec and create the necessary cloud resources.
What happens if you skip validation in the lifecyle ?
I guess the floating ip is coming from this part of the spec:
  cloudConfig:
    openstack:
      blockStorage:
        bs-version: v3
        csiPluginImage: docker.io/k8scloudprovider/cinder-csi-plugin:v1.20.3
        ignore-volume-az: true
        override-volume-az: nova
      loadbalancer:
        floatingNetwork: public
        floatingNetworkID: 586f0e36-993f-40f0-9ebc-e8329ec06d22
        method: ROUND_ROBIN
        provider: haproxy
        useOctavia: false
      monitor:
        delay: 1m
        maxRetries: 3
        timeout: 30s
      router:
        externalNetwork: public

Are there some options that can be changed to allow more time for the floating ip to show up ( deadline exceeded executing task looks like a timeout issue) ?

Hey @wesselvdv at least the credentials issue was fixed.
Do you have more details ? Does the cluster finishes by being created (maybe after applying the tf code multiple times) ?

I don't have any more details unfortunately due to being unable to set an equivalent of the cli flag -v <debug_level>.  I did notice that applying it multiply times results in the same error.

The lifecycle should apply the cluster spec and create the necessary cloud resources.
What happens if you skip validation in the lifecyle ?

I'll give this a go.

I guess the floating ip is coming from this part of the spec:
  cloudConfig:
    openstack:
      blockStorage:
        bs-version: v3
        csiPluginImage: docker.io/k8scloudprovider/cinder-csi-plugin:v1.20.3
        ignore-volume-az: true
        override-volume-az: nova
      loadbalancer:
        floatingNetwork: public
        floatingNetworkID: 586f0e36-993f-40f0-9ebc-e8329ec06d22
        method: ROUND_ROBIN
        provider: haproxy
        useOctavia: false
      monitor:
        delay: 1m
        maxRetries: 3
        timeout: 30s
      router:
        externalNetwork: public

Are there some options that can be changed to allow more time for the floating ip to show up (deadline exceeded executing task looks like a timeout issue) ?

I am not sure how to influence the timeout of a specific task. I did try to see if there was something else in the spec that would allow me to exert any form of control over how this floating ip comes to be, but this seems to be it.

The lifecycle should apply the cluster spec and create the necessary cloud resources.
What happens if you skip validation in the lifecyle ?

I'll give this a go.

Tried this, didn't make a difference. Still the same error.

This could be related to #256, maybe there is something that need to be set to false but ends up with null.

I’ll run it with the debug flags tomorrow

The latest version doesn't have the verbosity fix in yet. Could you release this?

v1.20.0-alpha.7 is being released. Should be available in a couple of minutes.

I am not seeing any additional logging when running with verbosity { value = 10 } and TF_LOG=DEBUG

the smaller the value, the more logs, maybe try with verbosity { value = 1 } ?

I tried it with value = 1 nothing additionally. What are other steps I can take to further narrow this down? I am almost thinking I'll run a custom build of your provider locally to debug it further.

I am almost thinking I'll run a custom build of your provider locally to debug it further.

That would be awesome.
the only thing I can think of is an issue with a pointer prop in kOps that is not correctly.
Something in the spirit of #256

Yes, it's something in the spirit of that. I managed to trace the error all the way to gophercloud. The actual error causing this is:
{"NeutronError": {"message": "External network 586f0e36-993f-40f0-9ebc-e8329ec06d22 is not reachable from subnet 1a98cad5-d1f6-4a77-9692-268c2151154a.  Therefore, cannot associate Port cc207ae7-817a-4791-81d4-26a6b390671a with a Floating IP.", "type": "ExternalGatewayForFloatingIPNotFound", "detail": ""}}

In short, I thought it was just a missing router so I created that, but that hasn't solved it yet. I am currently running a live debug on the terraform provider which allows me to go through the execution line by line.

Alright. I've managed to get it to work. I was a combination of things. I hadn't created a router which was required, and I once I did I forgot to actually make the required interfaces for each of the subnets created. Lastly, I had forgotten the zone assignment in the various instance groups.


builds with different package name

please change package name for builds on discord.k6.tf, so then we can instal vendetta without deleting original discord

Use manager for doing that.

i am talking about android
i don't want to buid packages by myself

That's the point of manager though is to avoid "building" anything.

i think download prebuilt package is much easier than use manager

I fail to see how downloading five APKs that require something like SAI to install and then navigating to them within SAI and selecting them, and then tapping through the customize install menu to install Vendetta is easier than pressing a button in manager and then waiting for it to download, patch and install the APKs for you.

whell, install splitted apk is not as easy as install normal apk
it will be perfect to have one unsplitted apk with different package name

Use the manager, you can change the package name to whatever you want and have multiple vendetta installs if wanted. I don't see why you're so set on the prepatched apks.

it will be perfect to have one unsplitted apk with different package name

uploading a modded discord apk (modding discord is forbidden by tos) on github (any company can take down the repo) in question:

While pre-patched APKs were initially the only way of installing Vendetta on non-root devices, now the preferred method should be Manager. The only reason I haven't killed the patching service is because there seem to be people that have issues with Manager patched APKs, which is also why there will not be any more modifications to pre-patched APKs than necessary.

ok, i undersood you, but i still think that publishing prebuilt apks with different package name will bee helpful for people that have issues with manager, and for people who don't want to install manager like me
if you disagree, feel free to close issue as not planned

Sorry to intrude but jani mentioned being able to have multiple vendetta installs? How do i do that😅

Sorry to intrude but jani mentioned being able to have multiple vendetta installs? How do i do that😅

Tap the info button in the top right and then tap the version (i think its like 10 times, i forgot) and you'll have developer settings where you can change the package name


Website not available

The problem
I was on your recent presentation and took some of the paper cards with me. When I enter the address written on them, I cannot access the page. This hasn't changed in the past 3 or 4 weeks.
Browser
All
Steps to reproduce the behavior
Open http://www.scrumlr.io
Screenshots
404 page not found
Additional context
Works without "www." so it's probably a small web server configuration issue. But it has a major impact and I'm wondering that nobody noticed that yet.

Hello @ygoe, thanks for reaching out and the report – we are aware of the issue and will be deploying a fix as soon as we can :) you can also keep an eye on this ticket to follow the status and get notified when it's completed.

Fixed thanks for reporting this 😄


fix: export types

📚 Description
Some types are currently not exported as they should to be readable by downstream projects.
📝 Checklist

[x] All commits follow the Conventional Commit format
[x] The PR's title follows the Conventional Commit format

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


migrate threat_intel_downloader function to tf_lambda module

Background
The threat_intel_downloader lambda function is not currently using the tf_lambda terraform module we introduced some time back. The current implementation could be drastically simplified by using the tf_lambda module.
Desired Change
Update the threat_intel_downloader.py generation code to use the tf_lambda module.
Update the tf_threat_intel_downloader module to only create other resources/IAM permissions not included in the tf_lamdba module.
Example terraform generation code using the tf_lambda module
Example of iam/etc configuration needed in addition to the tf_lambda module code.

this is complete with #1074


Create new guide page

A page with a guide describing how to use the application. This should be linked from the navigation

Use the WelcomeBanner as a reference. This component should be refactored when creating this new page. The component is not used anymore, just kept so it can be used as reference.


(maint) Confirm doxygen issues no warnings

Changes the doxygen test to use quiet output and scrape for any
warnings, as WARN_LOGFILE doesn't appear to work.

@peterhuene do you know off-hand how we should fix the \ref warning on README.md?

I couldn't figure out a way to do so earlier.  Doesn't seem like any escaping of it was working.


Add gofmt as a prerequisite for PRs in CI

Add go fmt as a basic test case in CI.
If the code in the submitted PR is not well format, the test will fail and ask the developer to run make format.
This is the first step for testing the code quality, as describe in the issue #161
We will add later

go vet
revive

Signed-off-by: Marcelo Amaral<EMAIL_ADDRESS>

Checking go format
./automation/presubmit-tests/gofmt.sh: line 34: exit: ./automation/presubmit-tests/gofmt.sh: numeric argument required

@rootfs could you please review it again?


window.analytics check occurs before eventdefinition is checked for truthiness

This is a...

[X] :rocket: Feature Request
Which version of Redux Beacon are you using?

v 1.2.1

Which target(s) are you using?

[X] Segment

I have been seeing errors in Rollbar indicating that a variety of clients are generating the error Uncaught Error: window.analytics is not defined, Have you forgotten to include the Segment tracking snippet?
My best guess is that some clients are blocking the Segment script or else not evaling it for some reason.  I wanted to turn redux-beacon off for those clients by checking if window.analytics is defined in the EventDefinition by essentially wrapping each in a function:
const ifSegmentDefined = (reducer: EventDefinition): EventDefinition => (
    (action: any, prevState: IMyStore, nextState: IMyStore): any => {
        const w = window as any;
        return w && w.analytics ? reducer(action, prevState, nextState): null;
    }
);
const segmentEventsMap: EventDefinitionsMap = {
    // ...
    [PROFILE.SAVE_SUCCESS]: ifSegmentDefined(myEventDefinition),
}

However, this doesn't work because it seems like redux-beacon fires the "window.analytics is not defined" error even if my isSegmentDefined wrapper returns null or undefined.  It also fires even if I return a literal null in my EventDefinition.  I would have expected that the check for window.analytics would happen after the check for an empty EventDefinition.
This isn't a big problem---I can work around it by creating a no-op middleware if windows.analytics is undefined.  But I think that if there's a race condition on asynchronously loading the segment library, it would be nice to be able to have the check happen when the event is created, not during initialization.

hey @mikebridge.
Interesting. Yeah, we are doing a check to ensure that window.analytics exists, if it doesn't we throw an error to let the dev know that it's not there: https://github.com/rangle/redux-beacon/blob/master/packages/segment/src/segment.ts
From what I remember, we added this to make the dev experience a bit better. Rather than getting an obscure error, they'd get a hint as to what the problem is (segment isn't loading, or they didn't add the snippet to their site).
A couple of thoughts...

I don't want to get rid of this error, in certain scenarios it's quite helpful
we could add an option to the segment target to oppress "dev warnings" to solve this
we could look into creating a dev version (with errors and warnings) and a minified version of the target. Kind of like React...but that may be a bit tricky.

@ttmarek After I thought about it, I realized that the obvious solution for me was to put the check in middleware.  This a) doesn't throw an exception if the segment initialization is blocked, b) brings the segment integration online if there's a race condition when loading the script asynchronously:
export const reduxBeaconSegmentMiddlewareFactory = () => {
    const w = window as any;
    const segmentMiddleWare = createMiddleware(segmentEventsMap, Segment);
    return store => next => action => w && w.analytics ? segmentMiddleWare(store)(next)(action) : next(action);
};

I could also write out a warning there if I wanted to instead of absorbing it, or log the problem to Rollbar or NewRelic.
I tested it out with something similar to this:
describe("analyticsMiddleware", () => {

    const w = window as any;
    const testId = "123";

    describe("reduxBeaconSegmentMiddlewareFactory", () => {

        it("should not generate a 'windows.analytics is not defined' error if analytics undefined", () => {
            delete w.analytics;
            const mockStore = configureStore([reduxBeaconSegmentMiddlewareFactory()]);
            const store = mockStore(initialStore);
            store.dispatch(createSaveSuccess("123")); // throws exception if error
        });

        it("should call analytics.identify with userid when profile saved", () => {
            let identifiedWithId: string = "";
            w.analytics = mockAnalytics({
                onTrack: () => null,
                onIdentify: (userId: string) => identifiedWithId = userId
            });
            const mockStore = configureStore([reduxBeaconSegmentMiddlewareFactory()]);
            const store = mockStore(initialStore);
            store.dispatch(createSaveSuccess(testId));
            expect(identifiedWithId).toBe(testId);
        });

        it("should call analytics.identify with userid if segment loaded after middleware", () => {
            let identifiedWithId: string = "";
            const mockStore = configureStore([reduxBeaconSegmentMiddlewareFactory()]);
            const store = mockStore(initialStore);
            w.analytics = mockAnalytics({
                onTrack: () => null,
                onIdentify: (userId: string) => identifiedWithId = userId
            });
            store.dispatch(createSaveSuccess(testId));
            expect(identifiedWithId).toBe(testId);
        });

    });
});

This seems to work---it would be a fairly easy modification to put this logic directly into createMiddleware.

Glad you came up with something that works! I don't think it makes much sense  to add these checks to createMiddleware as this is pretty target-specific.
P.S.
There's a new version out! Here's the migration guide: https://rangle.gitbook.io/redux-beacon/migration-guide-v1-to-v2
Give it a whirl, let me know if you run into any issues or have an ideas for enhancements. PR's are always welcome! :slightly_smiling_face:


Adding default filters

I didn't managed to add filters.
The docs says just to add showFilters={true} (or just showFilters) to the component.
But still  i cant see the filters.
Current Component:
          <ReactTable
          loadingText={this.state.loadingText}
          data={this.state.data}
          columns={this.state.columns}
          showFilters={true}
          loading={this.state.loading} />

There is another setting needs to be done to acheive default filtering?

That should work. What version are you using?

"react-table": "^5.3.5",

Do i need to add anything besides that showFilters?

You need to upgrade to at least version 5.5.0 to use filters.

Worked! Thank you!!!!

Awesome!


Add bsaoe.onmicrosoft.com

The website of the school is http://bsaoe.de

@SpotifyNutzeer
Please provide us with a proof, which shows that the school recognizes the domain you are submitting as an official email domain for the students.
You can provide us with any of the following:

A copy of instruction (a hard-copy or electronic one) given to you by the school that tells you to use an email address in this email domain
An URL of a page at the official school website that says that students use this email domain
A reference to a recognized journal where an article was published by someone from the school, with explicit affiliation to the school, and e-mail address from the email domain
A WHOIS data that link the email domain to the school somehow
A copy of official letter from the school representative saying that the school provides e-mail addresses in this domain to the students
Anything else that can prove this fact in similar way, i.e. can be verified independently.

@SpotifyNutzeer Please ask your teacher to prepare a signed letter. You can upload it in .pdf format as a comment to this request. Regrettably, anyone can register a domain at onmicrosoft.com, and we must not trust a request that cannot be verified.
In the meantime, please apply with official document ("OFFICIAL DOCUMENT" tab at https://www.jetbrains.com/shop/eform/students). It is also free and gives you the same educational license, just a little bit later than immediately.


LeaderElection ConfigMapsLeasesResourceLock backwards compatibility

When upgrading to v0.24.x of the client and higher, we realize the changes to move away from the use of ConfigMap locks in the leader election logic in favor of Leases is a backwards incompatible change and hence wanted to confirm the same.
As the transition from ConfigMap locks to Leases locks happens, it looks like ConfigMapsLeasesResourceLock multilock was intended to be a backwards compatible option that still treats the ConfigMap resource as the primary and the Lease resource as the secondary?

From what I've tested, this works only if the service account's cluster role is updated to now grant new permissions to at the very least “get” leases - hence requiring a change from the owners of the manifest file.
This is because in the multilock logic, even if the call to primary (i.e. ConfigMaps lock) returns successfully here, the call to secondary (i.e. Leases lock) is still made here which now returns a 403 Forbidden error.
And since this line only checks for 404 Not Found errors specifically from secondary, it cascades the error further up failing the leader election.

A couple of questions:

Assuming we have no control over our customers' manifest files, is it fair to say this would be a breaking change unless they update their ClusterRole to grant new permissions for Leases?
Are there plans in the short/long term to completely get rid of support for ConfigMap locks altogether thus making Leases locks to be the only supported option for leader election?
Is there a reason to specifically check only for NotFound err here as opposed to any err? If it got to this point in the code path, it means primary was successful and secondary was not successful, but I'd imagine we can still return primary irrespective of the type of err from secondary.
If not allow all errs on this line, would it be better to atleast check for both 404 Not Found and 403 Forbidden on this line?

As the transition from ConfigMap locks to Leases locks happens, it looks like ConfigMapsLeasesResourceLock multilock was intended to be a backwards compatible option that still treats the ConfigMap resource as the primary and the Lease resource as the secondary?

That was not the intent, the intent was to allow migration to leases in a leader-safe way, so the component would have to hold both the primary and secondary lock objects, if both APIs existed (e.g. Lease didn't return a 404).

Are there plans in the short/long term to completely get rid of support for ConfigMap locks altogether thus making Leases locks to be the only supported option for leader election?

Yes, see https://github.com/kubernetes/kubernetes/issues/80289

3. Is there a reason to specifically check only for NotFound err here as opposed to any err?

Yes, the point of the primary / secondary is to migrate to Leases. The client must hold both the primary and secondary to be the leader.

Thanks @liggitt - thats helpful. So it looks like the intended way to use the multi lock is either {just leases OR (both configmaps & leases)} and was never designed to work with {just configmaps}.
I need to think through the details but assuming there is a leader safe way to support {either configmaps or leases}, would that PR be considered?
We vend a library to our customers and hence we dont have direct control over our customers' manifest files. Hence this would be a breaking change that I'm trying to avoid. And this would be a breaking change for customers consumed our updated lib not only on K8s >=1.24 but even on those on older versions < 1.24.
Are there any other suggestions/options to avoid a breaking change? Or any other options other consumers of k8s client-go adopted that you are aware of to workaround this?

Is there a recommendation then for customers to be able to decouple their client/server deployment?  I.e. right now a customer cannot upgrade to v0.24.x of the client if the cluster doesn't support Leases or has not yet given RBAC permissions to the client.  It forces customers to synchronize their deployments.  (And for us, as vendors of a library, we can't upgrade to v0.24.x since we don't know that that won't break some of our customers.)

if the cluster doesn't support Leases

Leases have been GA since Kubernetes 1.14 / 2018, so it's reasonable to rely on the API being available at this point.

or has not yet given RBAC permissions to the client

I would recommend using whatever mechanism was used to communicate the need for configmap or endpoint access to indicate lease access is required.
If you want to keep using just configmaps as leader locks against client-go recommendations, you can also fork the leader election package at a point in time that supported that option.


Port to Jython

This issue was originally created at: 2002-12-06 02:03:04.
This issue was reported by: stevenknight.
stevenknight said at 2002-12-06 02:03:04

Support running SCons under Jython, ideally from the
same code base (that is, not a separate version).

issues@scons said at 2002-12-06 02:03:04

Converted from SourceForge tracker item 649449

garyo said at 2008-03-17 18:37:15

nice project for someday.  GSoC maybe.

This seems quite unlikely now. SCons is irrevocably Python 3+, and Jython shows no signs of a 3.x version actually happening. Maybe close and let someone reopen to show if there's actual demand?

Jython's a non-started currently for python 3.x. so closing.
Please re-open if there's a viable 3.x Jython, and someone is interested in doing the work..


Prioritize text fields over file fields?

Right now busboy takes fields as they are, if file field comes as first one and then text field, it will fire "file" event and then "field".
The problem comes if you have some kind of validation/check routines and combine text with file fields together. It will first upload the whole file and then it will fire "fields" event where you can check if some fields are wrong or missing. That will add overhead to whole FS.
Imagine, you will let your customers upload some files over 1-2GB. They will write some title and choose file. You will have to check for some forbidden symbols in title... Your customer will have to wait until file is fully uploaded to get error about wrong title. Bad?
Is it possible internally to sort fields so, that "file" event will be fired always at the end if "fields" are provided?
Thanks!

The server can't control the order that the client sends multipart form fields/files. I'm not sure what your asking for here; busboy is a server package.
The fields can be ordered on the client, which should solve your problem. The GraphQL multipart request spec for example mandates the order of fields the client sends:
https://github.com/jaydenseric/graphql-multipart-request-spec#multipart-form-field-structure

You would just need to enforce an order on the server side to prevent issues like that. Most clients implicitly support this by appending to the end of the form for example.

This issue can be closed.


Python Programs

Now I am adding Python Beginner level Programs . Other contributions are lined up as follows :

Digital Clock in C  Done
Python Data Visualization Programs  Done
Python Program of Weather Statistics of city entered by user  Done
Personal Python Notes till Strings Done
Beginner level Python Programs with solution

Archana Kalathiya

/assign


Relocate ASM and JNR classes in shaded JAR

The goal of this patch is to relocate the ASM and JNR classes that are included in the shaded JAR.
This change is motivated by a dependency conflict issue that I ran into while trying to use docker-client in Apache Spark's tests. There's a longer writeup at https://github.com/apache/spark/pull/9503#issuecomment-154369560 which describes our dependency conflict issues, but the TL;DR of it is that we are stuck running Jersey 1.9, which depends on ASM 3, and this causes conflicts with the ASM 5 that JNR uses.
Specifically:

jersey-server 1.9 depends on asm.asm 3.1, which exposes its classes under the org.objectweb.asm namespace.
docker-client 3.2.1 transitively depends on jnr-ffi 2.0.3, which depends on org.ow2.asm.asm 5.0.3. This version of ASM also contains classes under the org.objectweb.asm namespace, producing a binary incompatibility conflict which Maven doesn't detect.

Given that the primary motivation for having a shaded artifact seems to be avoiding conflicts with old versions of Jersey, I think that the best solution here is to relocate the ASM and JNR classes in docker-client's shaded JAR.

This change is

Imho all dependent class must be relocated.

On closer inspection, it looks like the published shaded JAR is currently including ASM classes without relocating them, which seems really bad because it means that dependency conflicts between those bundled-but-non-relocated classes and other copies of ASM that exist on the classpath:
$ wget https://repo1.maven.org/maven2/com/spotify/docker-client/3.2.1/docker-client-3.2.1-shaded.jar
$ jar tf docker-client-3.2.1-shaded.jar | grep Opcodes
org/objectweb/asm/Opcodes.class

Similarly, it looks like the shaded JAR contains all of the un-relocated JNR classes, which is going to cause hard-to-debug classpath ordering issues if a library which depends on docker-client wants to use a different JNR version.
Unless I've overlooked something, this library's current use of shading doesn't make sense. I think that it would be better to either shade and relocate all dependencies or to relocate all shaded dependencies and use Maven to pull in the un-relocated dependencies.

(I'm using docker-java, but shading issue is the same for both libs)
If you want use JNR version from shaded jar, then you should use imports with shaded path.
But then you will get issue if you are using 2 different library versions as they may have different versions of shaded artifacts that has the same package names. Now i think that you need shade library with deps yourself in your application (but note that maven-3.3 has bug https://issues.apache.org/jira/browse/MNG-5807 and we had different related discussion in Jenkins) with different prefixes. In this case shading in library pom.xml will be just an example of shading configuration.

If there's agreement that we should relocate every third-party class that is bundled into the -shaded JAR then I will close this PR and submit another one to pursue that approach.

With a shaded artifact, my goals would be to a) relocate every third-party class included in the JAR, and b) drop those bundled dependencies from the POM while promoting transitive dependencies. In principle, the createDependencyReducedPom and promoteTransitiveDependencies shade options should handle this by generating a new POM. However, these options only take effect if shadedArtifactAttached is false.
Other projects have run into this problem and have come up with a few solutions:

Kryo decided to only publish the shaded JAR: https://code.google.com/p/kryo/issues/detail?id=116#c7
HBase publishes shaded JARs as separate artifacts (not using classifiers): https://issues.apache.org/jira/browse/HBASE-13517

The HBase solution seems to work nicely, but it's a large maintenance burden and would also require a shift to a multi-module Maven build. It's also kind of complex; see https://github.com/apache/hbase/blob/44367f55e8bbd252ae824d1ddb626b5ce91fe75d/hbase-shaded/pom.xml
Other people have also run into the limitations of a classifier-based approach: http://maven.40175.n5.nabble.com/shade-plugin-attached-artifact-and-dependency-reduced-pom-td5765599.html
Given all of this, one low-effort way to move forward might be the following:

Drop the ASM and JNR dependencies from the shaded JAR.
Instruct users on how to add excludes in order to prevent the Jersey and Jackson JARs from the non-reduced POM from continuing to be pulled in as transitive dependencies when users depend on the shaded-classified artifact.

Also, it would be good to shade Guava: it doesn't have any transitive dependencies and is quite conflict-prone itself.

@stephenc maybe you have some generic opinion for such cases?

It seems like what you really want to be doing is publishing the shaded artifact under a different artifactId rather than as an attached artifact... https://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html#shadedArtifactId would seem to be what you want, and with that case (as long as you do not try to consume the shaded artifact from the same reactor that is building it) then you should not hit the POM immutablity issue in Maven 3.3.x (though @jvanzyl is of the opinion that a different packaging type for shaded artifacts is the correct solution... which would again drive you to publish the shaded artifact to a different artifactId from the unshaded one)
@jvanzyl here is a case in point w.r.t. the shade plugin and modifying the project model

@stephenc right! I forgot this classical trick with package names :) Classifier sounds right but it seems in maven classifier usage is not designed well i.e. using it for branch builds instead of maven version set.
IMHO multi-module or other artifactId looks good

A classifier gets the same dependencies as the main artifact... which is not what you want here, rather you want a different artifactId as the dependencies are different

I've updated this to also relocate the JNR classes. While I feel that publishing a shaded artifact using a dependency-reduced POM would make sense, I'm glad to defer that larger build change to a different PR.
In the meantime, how does this relocation of these shaded classes look? Is there still interest in getting this relocation merged in?

Current coverage is 50.45% (diff: 100%)

Merging #272 into master will increase coverage by 4.11%

@@             master       #272   diff @@
==========================================
  Files           130         83     -47
  Lines          4331       3219   -1112
  Methods           0          0
  Messages          0          0
  Branches        635        456    -179
==========================================
- Hits           2007       1624    -383
+ Misses         2134       1445    -689
+ Partials        190        150     -40

Powered by Codecov. Last update cbdd93b...c1bef52

Do people still want this? If not, can I close?

We're no longer blocked on this, so I'll close. I still think this is ultimately worth fixing from a best-practices POV, though, since including other libraries' classes without relocating them to a new namespace can be problematic from a class conflict POV.

I'm experiencing a conflict between cassandra-driver-core which has a couple of dependencies to com.github.jnr artifacts. I think this would be solved by docker-client relocating com.github.jnr to com.spotify.docker.client.shaded.com.github.jnr like what has been done for other packages as well already.
(Actually, the conflict is missinglink complaining about missing methods depending on whether cassandra-driver-core or docker-client is first on the class path.)

Thanks for reporting this. If you could make a PR, we can review it.
David Xia
Software Engineer
<EMAIL_ADDRESS>


[BUG] {{ dl toogle button }} - {{ UI issues }}

The text & info icon in the second button is not aligned with the center.
The info icon should be dl-icon-info.

@fadiDL  This bug only appears on the dataloop site

Closing as its irrelevant


New docker-compose-gpu installation, backend   | Method Not Allowed: /api/scanphotos/

🛑 Before you create an issue make sure that:

Your issue is strictly related to LibrePhotos itself. Questions about setting up a reverse proxy belong in what ever reverse proxy you are using.
You have read the documentation thoroughly.
You have searched for a similar issue among all the former issues (even closed ones).
You have tried to replicate the issue with a clean install of the project.
You have asked for help on our Discord server LibrePhotos if your issue involves general "how to" questions

When Submitting please remove every thing above this line
🐛 Bug Report

[x ] 📁 I've Included a ZIP file containing my librephotos log files
logs-report.zip
[x ] ❌ I have looked for similar issues (including closed ones)
[x ] 🎬 (If applicable) I've provided pictures or links to videos that clearly demonstrate the issue

📝 Description of issue:
New install of librephotos-gpu with docker-compose following documentation does not scan for the photos, says "method not allowed.
The .env and docker-compose.yaml were identical from configuration that was working fine on standard cpu-only image, I've decided to try gpu image with fresh data folder.
grep -i 'Method Not Allowed' *
gunicorn_django.log:Method Not Allowed: /api/scanphotos/
gunicorn_django.log:Method Not Allowed: /api/scanphotos/
gunicorn_django.log:Method Not Allowed: /api/fullscanphotos/
gunicorn_django.log:Method Not Allowed: /api/fullscanphotos/
gunicorn_django.log:Method Not Allowed: /api/scanphotos/
gunicorn_django.log:Method Not Allowed: /api/scanphotos/

🔁 How can we reproduce it:
fresh install of the librephotos-gpu , start scan or full scan of library.
Please provide additional information:

💻 Operating system: Debian 12
⚙ Architecture (x86 or ARM):  x86
🔢 Librephotos version: latest
📸 Librephotos installation method (Docker, Kubernetes, .deb, etc.): Docker,

🐋 If Docker or Kubernets, provide docker-compose image tag: image: reallibrephotos/librephotos-gpu:latest

📁 How is you picture library mounted (Local file system (Type), NFS, SMB, etc.): local docker
☁ If you are virtualizing librephotos, Virtualization platform (Proxmox, Xen, HyperV, etc.):

I assumed this was an issue with file permissions.
I got into the proxy's bash
docker exec -it librephotos_proxy bash

listed the directories
root@92afb3f46d7f:/# ls -la
total 80
drwxr-xr-x   1 root root 4096 Aug  9 19:03 .
drwxr-xr-x   1 root root 4096 Aug  9 19:03 ..
...
drwxrwxr-x   5 1000 1000 4096 Aug  9 17:15 data
...
drwxr-xr-x   3 root root 4096 Aug  9 19:10 protected_media

noticed that /data was set to user 1000 so I ran root@92afb3f46d7f:/# chown -R root:root /data while in the proxy container to change ownership of all files and directories recursively.
Still getting the same backend Method Not Allowed: /api/scanphotos/ error

For me, exactly same configuration (same volume mounts, same yaml config) works just fine by using non-gpu container.
In my understanding, the Unauthorized message is related in context of caller no-authorized to call api endpoint rather than file permissions on a drive.

yeah, seeing the same issue with the latest gpu container. Maybe something in the proxy?

This is probably related to authentication. Can you go to the application tab in your browser and remove all the cookies related to LibrePhotos and try again?

Deleted cookies
I deleted all cookies and logged in. I see a new csrftoken and jwt added

I will note that These errors in this issue happen while not even accessing the ui. They appear upon first spin up of the container before I open any UI in the browser
backend gpu container logs
...
librephotos_backend   | 22:31:35 [Q] INFO Enqueued [DjangORM] 16255
librephotos_backend   | 22:31:35 [Q] INFO Process-892f16f82c8d4aa496d9040878b6b0f4 created task sink-kansas-music-zebra from schedule [1]
librephotos_backend   | 22:31:36 [Q] INFO Process-a133011e3b9d497c95c9837297f4cdec processing sink-kansas-music-zebra 'api.services.check_services' [1]
librephotos_backend   | 22:31:36 [Q] ERROR Failed 'api.services.check_services' (sink-kansas-music-zebra) - Function api.services.check_services is not defined : Traceback (most recent call last):
librephotos_backend   |   File "/usr/local/lib/python3.10/dist-packages/django_q/worker.py", line 96, in worker
librephotos_backend   |     raise ValueError(f"Function {task['func']} is not defined")
librephotos_backend   | ValueError: Function api.services.check_services is not defined
librephotos_backend   |
librephotos_backend   | 22:32:05 [Q] INFO Enqueued [DjangORM] 16256
librephotos_backend   | 22:32:05 [Q] INFO Process-892f16f82c8d4aa496d9040878b6b0f4 created task romeo-six-stairway-west from schedule [1]
librephotos_backend   | 22:32:06 [Q] INFO Process-a133011e3b9d497c95c9837297f4cdec processing romeo-six-stairway-west 'api.services.check_services' [1]
librephotos_backend   | 22:32:06 [Q] ERROR Failed 'api.services.check_services' (romeo-six-stairway-west) - Function api.services.check_services is not defined : Traceback (most recent call last):
librephotos_backend   |   File "/usr/local/lib/python3.10/dist-packages/django_q/worker.py", line 96, in worker
librephotos_backend   |     raise ValueError(f"Function {task['func']} is not defined")
librephotos_backend   | ValueError: Function api.services.check_services is not defined
librephotos_backend   |
librephotos_backend   | 22:32:36 [Q] INFO Enqueued [DjangORM] 16257
librephotos_backend   | 22:32:36 [Q] INFO Process-892f16f82c8d4aa496d9040878b6b0f4 created task rugby-edward-emma-three from schedule [1]
librephotos_backend   | 22:32:36 [Q] INFO Process-a133011e3b9d497c95c9837297f4cdec processing rugby-edward-emma-three 'api.services.check_services' [1]
librephotos_backend   | 22:32:36 [Q] ERROR Failed 'api.services.check_services' (rugby-edward-emma-three) - Function api.services.check_services is not defined : Traceback (most recent call last):
librephotos_backend   |   File "/usr/local/lib/python3.10/dist-packages/django_q/worker.py", line 96, in worker
librephotos_backend   |     raise ValueError(f"Function {task['func']} is not defined")
librephotos_backend   | ValueError: Function api.services.check_services is not defined
librephotos_backend   |

While running scan
I figured I'd run a scan to maybe restart the api
docker exec --user root librephotos_backend python3 manage.py scan

use SECRET_KEY from file
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 89, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.10/dist-packages/psycopg/cursor.py", line 732, in execute
    raise ex.with_traceback(None)
psycopg.errors.UndefinedColumn: column "result" of relation "api_longrunningjob" does not exist
LINE 1: ...ob_id", "queued_at", "started_at", "finished_at", "result", ...
                                                             ^

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/code/manage.py", line 31, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 436, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 412, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 458, in execute
    output = self.handle(*args, **options)
  File "/code/api/management/commands/scan.py", line 55, in handle
    scan_photos(
  File "/code/api/directory_watcher.py", line 329, in scan_photos
    lrj = LongRunningJob.objects.create(
  File "/usr/local/lib/python3.10/dist-packages/django/db/models/manager.py", line 87, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 658, in create
    obj.save(force_insert=True, using=self.db)
  File "/usr/local/lib/python3.10/dist-packages/django/db/models/base.py", line 814, in save
    self.save_base(
  File "/usr/local/lib/python3.10/dist-packages/django/db/models/base.py", line 877, in save_base
    updated = self._save_table(
  File "/usr/local/lib/python3.10/dist-packages/django/db/models/base.py", line 1020, in _save_table
    results = self._do_insert(
  File "/usr/local/lib/python3.10/dist-packages/django/db/models/base.py", line 1061, in _do_insert
    return manager._insert(
  File "/usr/local/lib/python3.10/dist-packages/django/db/models/manager.py", line 87, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 1805, in _insert
    return query.get_compiler(using=using).execute_sql(returning_fields)
  File "/usr/local/lib/python3.10/dist-packages/django/db/models/sql/compiler.py", line 1822, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 67, in execute
    return self._execute_with_wrappers(
  File "/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 84, in _execute
    with self.db.wrap_database_errors:
  File "/usr/local/lib/python3.10/dist-packages/django/db/utils.py", line 91, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 89, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.10/dist-packages/psycopg/cursor.py", line 732, in execute
    raise ex.with_traceback(None)
django.db.utils.ProgrammingError: column "result" of relation "api_longrunningjob" does not exist
LINE 1: ...ob_id", "queued_at", "started_at", "finished_at", "result", ...

Workers UI
Looks like the workers are busy but I don't know anything more than busy.... This stack was previously using the non-gpu version if that is causing any issue.

LINE 1: ...ob_id", "queued_at", "started_at", "finished_at", "result", ...```

These errors are the result of the librephotos and librephotos-gpu image being out of sync. The release job did not work correctly the last couple of releases. Can you switch to the dev tag with the librephotos-gpu image?

LINE 1: ...ob_id", "queued_at", "started_at", "finished_at", "result", ...

These errors are the result of the librephotos and librephotos-gpu image being out of sync. The release job did not work correctly the last couple of releases. Can you switch to the dev tag with the librephotos-gpu image?

I've switched over to the dev tag and all is working well (I moved all containers over to dev branch)
Also, there was a bug with the session becoming invalid when switching to a new tab / closing opening browser that is not here on the dev branch.
Should I close this issue, or should I keep it open until it's merged with latest?

New release is now out, this should be fixed :)
Login session is managed in the frontend container and that should be fixed now too


Layers for waypoint names

What's new

Filter waypoint name as layers

chrome-capture-2023-9-10.webm
Self-checks

[ ] I have prototyped this new feature (if necessary) on Figma
[ ] I'm familiar with and follow this Typescript guideline
[ ] I added unit-tests for new components
[ ] I tried testing edge cases
[ ] I tested the behavior of the components that interact with the backend, with an e2e test

Discussion

Closing this in favor of https://github.com/open-rmf/rmf-web/pull/798


You cannot do a pull directly from AWS ECR (namespace problem)

I try to perform the following pull by oras-py
oras-py pull ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com/registry-name:latest
And I get the following error:
You are minimally required to include a <namespace>/<repository>
But when I try it directly from the oras
oras pull ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com/registry-name:latest
Works!
Downloading 827a4b2f6d63 .
Downloaded  827a4b2f6d63 .

It is not mandatory to use namespace in ECR

We can fix that up! I’ll prepare a PR for you to test.

Okay please give https://github.com/oras-project/oras-py/pull/55 a shot! You should be able to clone the respository, create an environment of your choosing and pip install -e . for a development install and then try the command as before, and do a sanity check of which oras-py to make sure it is in the new environment.
I've basically tweaked the regex that parses the name to not require a namespace, and then the URI to also accommodate. Let me know if it works!

Thanks for the prompt help.
Now I had another error, in the download of the manifest, because it formatted the url wrong follows output:
oras-py pull ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/stacks:latest

Issue with https://ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/v2/None/stacks/manifests/latest:
Unauthorized

For me the right url should be
https://ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/v2/stacks/manifests/latest

oups looks like I must have missed that one reference of the namespace -- let me take a look!

Yep I missed just the sections above that, here https://github.com/oras-project/oras-py/pull/55/commits/cc644cafb7926962ec020c877fc3417ac932535a. Please give it another shot!

Tks, but still didn't work
Issue with https://ACCOUNT_NUMBER.dkr.ecr.us-east-1.amazonaws.com/v2/stacks/manifests/latest:
Unauthorized

I think it is the : at the end.
I can see the manifest json if I access this url without the ':'.

That colon is just in the message:
logger.exit(f"Issue with {response.request.url}:\n{response.reason}")

How are you providing authentication? If you can do an IPython.embed() in there (oras/container.py) and tell me exactly the headers / error that you are seeing (since I can't reproduce) that's the best way for me to help.

I use this command to login
aws ecr get-login-password --region $AWS_REGION --profile $PROFILE | oras-py login \
    --password-stdin \
    --username AWS \
    "${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com"

It works with oras, but dont print any message (success or error).
Do you have a way to validate that the login worked?

I tried to pass the authentication in pull
oras-py pull ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/stacks:latest --username AWS --password MY_TOKEN

Returns
Issue with https://ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/v2/stacks/manifests/latest:
Unauthorized

I tested with oras
oras pull ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/stacks:latest --username AWS --password MY_TOKEN

and works! My token (password) is valid.

Okay right - so I need you to insert some IPython.embed() or otherwise give me an example to reproduce your error - seeing that one works and one does not is not helpful. Are you familiar with Python?

Also I removed the : in the message which suggests you aren't using the updated branch.

@shizhMSFT and I don't have ECR for testing either. You can talk with Nima Talebi(github account: nima) to see if he can provide you some resource for testing or help repo the issue in ECR.

hey @nima! :wave:  See out discussion above. I need to help debug this issue, but I cannot reproduce, and I don't think @christianoguedes is able to dig in to provide more detail. Can you help?

Sure i'll take a look at this, staying with a repro. 😃

Hey guys, sorry by my late. I believe we're in different time zones
I ran it again with the adjustments made, but it still didn't work. Although it did succeed in the login.
❯ aws ecr get-login-password --region $AWS_REGION --profile $PROFILE | oras-py login \
    --password-stdin \
    --username AWS \
    "${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com"
{'Status': 'Login Succeeded'}

❯ oras-py pull ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/stacks:latest
Issue with https://ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/v2/stacks/manifests/latest
Unauthorized

I was able to import IPython.embed() into oras/container.py, but I couldn't use it. Could you create a branch with these outputs that would help detect this and I would run it here? In the future I could even have a verbose mode in the CLI.
Tks for help

okay so what if you do the auth with the command?

okay gotcha, thanks for testing that! So what we need to do next is to install IPython
pip install IPython

Then what I would do is:
print('IN FUNCTION PULL')
import IPython
IPython.embed()

at the top of the functions for pull https://github.com/oras-project/oras-py/blob/72e73eaad022e47fc84b69139b1fcae3224c1ca1/oras/provider.py#L577 and download_blob. The prints tell you where you are. That will open an interactive terminal at those points and you can walk through each command (yes copy paste) until you hit the request for the error. Then I'm interested to see the details / headers / whatever you can give me (this is how I would debug it if I could reproduce your error).

What URL is the request supposed to go to? Normally it's assembled from the result of h.realm - is there an h.service on there (or other attributes) we are missing? Can you look at all the attributes on that object?

I don't know why but when trying to download a private registry manifest whitout auth amazon returns the following header
'Basic realm="https://ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/",service="ecr.amazonaws.com"'

However respond 404 if I make the request to this helm url.
But once the user is logged in or has informed the credentials why not already try to make the first request with basic auth?
I made this small change here and it worked for me the manifest donwload.
But I needed to make another change, because my image is not standard, it's a custom one, but it's .tar.
From:
if layer["mediaType"] == oras.defaults.default_blob_dir_media_type:

To:
if layer["mediaType"].endswith(('+tar', '.tar+gzip', '.tar')):
```

Why is your image not standard?
Can you please send me the full content type? I don't think we want to blindly match based on the suffix, but we can add the default to be one from a list.
Can you please show me the change you made so it works? Generally the flow is to do the request (without auth) and parse the Www-Authenticate header to know where to ask to get a token. If ECR does something different I'd be interested to know what that is!

Interesting! Is this something you could write a custom client for (that would handle this logic) or are there fixes you think would be useful to add upstream here?

hey folks, I opened a PR here https://github.com/oras-project/oras-py/pull/55 for this issue can anyone test please?

Sorry for the delay.
But I got a totally different error now, but I believe I run it correctly.
I execute the following command
oras-py pull<PHONE_NUMBER>36.dkr.ecr.us-east-1.amazonaws.com/stacks:registry-api --username AWS --password <AWS_TOKEN>

An error has occurred in the file provider.py line 95 self.token = self._auths[hostname]["auth"]
hostname = '765614139936.dkr.ecr.us-east-1.amazonaws.com'
self._auths = {'.dkr.ecr.us-east-1.amazonaws.com': {'auth': 'base64(user:<AWS_TOKEN>)'}, '765614139936.dkr.ecr.us-east-1.amazonaws.com': {}}
with this the token is not found in  self._auths[hostname]["auth"] and ends the execution at this stage.
I set the value manually and continue with the same problem happened as before.
When try to download the manifest from 'https://765614139936.dkr.ecr.us-east-1.amazonaws.com/v2/stacks-services/manifests/registry-api' it does not send basic auth in the header and gets a 401 (line 665 provider.py)
But for ECR don't need to call an authentication service (line 746 provider.py), just send the basic token in all requests, when trying to "authenticate" at 'https://765614139936.dkr.ecr.us-east-1.amazonaws.com/' receives a 404 error, because there is no such page in aws

So it looks like the hostname that is provided from the API doesn't match what you have in your credential file? E.g., self.auths doesn't have that long number at the beginning, and the hostname needs to match what is there. Why is that?

If you had the full hostname in your auths file (beginning with 765) I think that would be found.

@christianoguedes to keep you in the loop - we did a little more debugging tonight and are closer! Some things we learned:

you can't have credsStore in your ~/.docker/config.json, the python docker library (it seems) doesn't support external stores
If you do, you can comment it out, do the docker login to aws again, and then sanity check there is an "auth" key in that file under the hostname populated with a base64 encoded username/password
If you add pull --debug it should show more verbosity.

@nima hasn't gotten it working yet,and we are both pooped tonight and will pick up tomorrow, hopefully I can get some temp credentials to debug it directly myself. In the meantime if you want to pull the updated branch and try again with debug (and taking into account the above) please feel free!

I did have the ~/.docker/config.json file, but removed it completely to perform a clean test.
I execute the command with the authentication parameter:
oras-py pull --debug<PHONE_NUMBER>36.dkr.ecr.us-east-1.amazonaws.com/stacks:registry-api --username AWS --password <AWS_TOKEN>
And I got the following output
``
`
No Authorization, requesting anonymous token
Final params are {'service': 'ecr.amazonaws.com'}
Response for anon token failed: Not Authorized
This endpoint requires a token. Please set oras.provider.Registry.set_basic_auth(username, password) first or use oras-py login to do the same.
Issue with https://765614139936.dkr.ecr.us-east-1.amazonaws.com/v2/stacks-services/manifests/registry-api: Unauthorized
``
`
At no point in this attempt did it make any requests with Basic Auth.
@vsoch I can send you a temporary credential that allows you to pull this image into my private repository on aws for testing, but is there any way to send a private message on github?

Or maybe a DM on Twitter or Gitter would work?

Actually it looks like we aren't setting the username and password - give me a few minutes to tweak something! The above really should work.

I sent the temp credential to your twitter

We should double check the right person - https://twitter.com/vsoch

I don't see it - but give the pull one more try, I fixed a bug https://github.com/oras-project/oras-py/pull/55/commits/a3bfa5941a82dce17d96fad54b15274100128468

Now you make the request to 'https://765614139936.dkr.ecr.us-east-1.amazonaws.com/' with basic auth, but AWS returns 404 for this url. Apparently you don't need to authenticate, just call all requests with basic auth, in this case make the request with basic auth to https://765614139936.dkr.ecr.us-east-1.amazonaws.com/v2/stacks-services/manifests/registry-api.
same output
Auth response parameters: {'service': 'ecr.amazonaws.com'}
Auth response was not successful: {response.text}
Issue with https://765614139936.dkr.ecr.us-east-1.amazonaws.com/v2/stacks-services/manifests/registry-api: Unauthorized

Yeah I can reproduce that. Did you send me a basic auth or token?

When I look at the thing you sent me, when I decode it, it has a DATA_KEY type and is json. I don't think this is basic auth?

okay well I need to get more sleep - been going at this since 6am and I still have a full workday. I can try again later. I'm kind of confused about what credential example you gave me - it's not base64 encoded username password (which is basic auth).

Indeed that works!

I can also look at the headers for that page and verify the Basic header (the encoded thing with AWS) matches the one I'm generating.

Oh I just got it working.

Huh I didn't know "subject" was valid for a manifest?
     'mediaType': 'application/vnd.oci.image.manifest.v1+json',
     'schemaVersion': 2,
     'subject': None}

okay it's finally pulling - ECR seems to just roll it's own rules about manifests I guess. It broke the manifest schema in three places.

@christianoguedes could you maybe next time not send me an example that is going to explode all over my local directory, or give  me a command to extract to a single place? It exploded a small filesystem into my local repo which could have been disaster!

Thanks a lot really now it worked, I'm also disappointed with ECR, mainly for not having how to put namespaces.
Now I tried to execute a push, but got the following error: :(
Layers with digests '[sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]' required for pushing image into repository with name 'stacks-services' in the registry with id '765614139936' do not exist
Issue with https://765614139936.dkr.ecr.us-east-1.amazonaws.com/v2/stacks-services/manifests/test_oras_py: Not Found

I'll check if I'm doing something wrong, but the same command with oras worked.
oras push --username 'AWS' --password<SAME_AWS_TEMP_PASS><PHONE_NUMBER>36.dkr.ecr.us-east-1.amazonaws.com/stacks-services:test_oras_py2 .:application/vnd.stackspot.stack+tar

If you want to test you can put any tag, it is a temporary repository.

I'm on it! And it's OK, I am empowered to debug this with your token so I should be able to figure this out. Thanks again and will report back (hopefully with good news).

I'm able to push and get 200/201 responses for the layer and config but then when I try to push the manifest:
{'errors': [{'code': 'BLOB_UPLOAD_UNKNOWN',
   'message': "Layers with digests '[sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]' required for pushing image into repository with name 'stacks-services' in the registry with id '765614139936' do not exist"}]}

The URL is:
https://765614139936.dkr.ecr.us-east-1.amazonaws.com/v2/stacks-services/manifests/test_oras_py2
json data
{'schemaVersion': 2,
 'mediaType': 'application/vnd.oci.image.manifest.v1+json',
 'config': {'mediaType': 'application/vnd.unknown.config.v1+json',
  'size': 0,
  'digest': 'sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'},
 'layers': [{'mediaType': 'application/vnd.stackspot.stack+tar',
   'size': 44992,
   'digest': 'sha256:6e7eb85f6bfaea91c6c43fd3c83a55fc96a3ac65e8b30ce49ac6ed7883387efa',
   'annotations': {'org.opencontainers.image.title': 'dist'}}],
 'annotations': {}}

headers (not including the auth token)
{'Content-Type': 'application/vnd.oci.image.manifest.v1+json',
 'Content-Length': '5'}

and it's a PUT.
I can push what I have (I added support for media_type) but I'm not sure why I am able to push the config and then it tells me the layer isn't there. Maybe you can take a look?

Just tried again - same error as above. The first two seem to work (after handling the auth to ultimately just use the basic token) but the last request to PUT the manifest is denied because it says the layer doesn't exist.

Hey folks! I've been thinking this over and want to share some thoughts I have about this, larger picture. This is taken from the oras slack just now:
I've been thinking about oras-py and I'm looking for some feedback. Specifically I think we should remove the oras-py client commands (and refactor them to be examples). The reason is because it's redundant to maintain two clients, and in practice I've found basic custom implementations (that are done to do exactly what some snowflake registry or interaction needs) are better than trying to provide one command to fit them all. I think the original intention of oras-py was to have a python API to interact with oras, and not to provide yet-another-command-line-tool (I just didn't think about this at the time of creation). As a quick example, I have a custom cache for a tool that can assemble metadata https://github.com/converged-computing/cloud-select/blob/main/cloud_select/main/cache.py#L81-L107 and then use by subclass of the oras provider to push! https://github.com/converged-computing/cloud-select/blob/db02c4378f06bfbbe9df6b8a83c885cc9238a04e/cloud_select/main/cache.py#L81 and I'm wrapping the set_basic_auth that I get from the environment and making sure the user has provided exactly what I need. And then I get my data with (the Go variant) of oras if I need a command line client!
For the context here, the ideal solution I think would be to remove these client commands - if you need a command line client you should be using oras in Go and we shouldn't be trying to maintain two versions of the same thing. Then in place of this I can implement custom example clients - and specifically optimized for what EC2 needs. Or GitHub packages. Or whatever. The pattern I'm starting to see is that registries have subtle difference and there is no "one client to rule them all."
TLDR The python SDK should be for Python developers, and not provide a second client. Let me know your thoughts. If you agree I'll start work on this tomorrow.

@christianoguedes @nima - thank you for your help (and the fun!) here. I've decided for command line interactions to point you to https://github.com/oras-project/oras - we should not be trying to maintain two equivalent clients in different languages. The SDK here is intended for custom Python applications. However, we did fix the original bug reported for push above - if you just need the client, then probably no further work is needed. If you want to look more into the EC2 differences with the pull, then please open another issue and we can discuss there. What we would do is create a custom example in the newly updated examples folder that creates a client that does exactly what (whatever ECR) needs. Thanks again!


[BUG] Endless loop MQTT battery sensor publish

Describe the bug
Since last week I updated to the latest version of WallPanel since I was still using the last version of the ThanksMister repo.
Since then I noticed that sometimes there was a significant increase of traffic on the MQTT broker. See screenshot below:

It happened again this morning so I subscribed to the root topic with the wildcard character. Apparently there was a massive amount of messages being published on the sensor/battery topic. It generated about 24.000 messages in about 3 minutes.
Even now the battery state is published twice every minute:

To Reproduce
No clear scenario to reproduce. I don't know what could trigger it since it started mostly during the night. The screen is turned off during the night via an automation. I don't know if that could cause that behavior.
This behavior has never been observed with the previous versions of WallPanel I've used.
Smartphone (please complete the following information):

Device: Lenovo TB-X304F
OS: Android 10
Application version v0.10.0 Build 1

It hapened again this morning. Now I managed to take screenshot of the messages on the broker:

When I terminate the app the flood of messages also stops.

Have you looked in the settings on how often the sensors should be updated? The battery readings are only sent in a set timer so it kind of looks like that the sensor settings are set to (close to) 0ms.

I used the same settings as the latets version of ThanksMister and it is set to 60 seconds.
It starts most of the time during the night but the app isn't restarting since this morning it was sending flood of messages when I took the screenshot and app was running fine (from the UI point of view). Is it possible that additional timers are being created over time but sometimes not get canceled?

Is there anything I can do to get this issue forward?

Sorry, I'm a bit stumped on this as well as I can't reproduce this personally :(
Is it only the battery state that gets pushed endlessly or do you have other messages sent as well?

Yes, it is only the battery state but the tablet also doesn't have any other supported sensors. The regular state with the current url, screenon, ... is only reported once every minute.
If I restart the app I notice that the battery state is always reported twice every minute with one millisecond in between.
But for some reason it runs out of hand sometimes with this massive amount of publishes. It didn't had the issue for the last 24h.
HA also sends a few commands to the tablet; at midnight it restarts the app (since I noticed the app slowing down if it remained running for several days) and it controls the brightness and the screen on/off. I don't know if this could be related.
Is there any way to debug the app or to see logs on the tablet?

I also have this issue if the connection to the MQTT broker is lost / restored. I am using mosquitto as broker and after I restart mosquitto, the Wallpanel app starts spamming MQTT messages.

I have this same issue using Mosquitto Broker with Home assistant.
After restarting everything, all seems fine at first, but after some times, more and more messages from battery level are send at roughly the same second.
Components used:

Mosquitto Broker v6.1.3
Wall Panel v0.10.0 Build 1

Configuration of WallPanel:

Camera : enabled
MQTT discovery : disabled
Sensor publishing : enabled
Publish frequency : 60
Sensor list : Battery level, USB plugged, AC plugged, Charging

Example with the extract from MQTT logs of HA :

At the bottom there is a full log that's from the point where I turned off the screen.
You can see that there are disconnects which might be related to battery optimization of Android so disabling that for the app might solve it for me but nonetheless there are also use cases this can happen while the screen remains on like broker restart, network disruption, ... So this is an issue that should be fixed.
The number of published messages grows over time. It looks like there are multiple connections active to the broker at the same time. Like you can see here (port 49105 and 49106 for example):
2022-09-29T16:11:50+00:00 [SUBSCRIBE] wallpanel@<IP_ADDRESS>:49103 msg: subscribe, sub_id: wallpanel, sub_opts: [nl: 0, qos: 2, rap: 0, rh: 0, sub_props: [Subscription-Identifier: 1], subid: 1], topic: wallpanel/command
2022-09-29T16:11:50+00:00 [UNSUBSCRIBE] wallpanel@<IP_ADDRESS>:49102 msg: unsubscribe, sub_opts: [nl: 0, qos: 2, rap: 0, rh: 0, sub_props: [Subscription-Identifier: 1], subid: wallpanel], topic: wallpanel/command
2022-09-29T16:11:50+00:00 [SUBSCRIBE] wallpanel@<IP_ADDRESS>:49104 msg: subscribe, sub_id: wallpanel, sub_opts: [nl: 0, qos: 2, rap: 0, rh: 0, sub_props: [Subscription-Identifier: 1], subid: 1], topic: wallpanel/command
2022-09-29T16:11:50+00:00 [UNSUBSCRIBE] wallpanel@<IP_ADDRESS>:49103 msg: unsubscribe, sub_opts: [nl: 0, qos: 2, rap: 0, rh: 0, sub_props: [Subscription-Identifier: 1], subid: wallpanel], topic: wallpanel/command
2022-09-29T16:11:50+00:00 [SUBSCRIBE] wallpanel@<IP_ADDRESS>:49105 msg: subscribe, sub_id: wallpanel, sub_opts: [nl: 0, qos: 2, rap: 0, rh: 0, sub_props: [Subscription-Identifier: 1], subid: 1], topic: wallpanel/command
2022-09-29T16:11:50+00:00 [UNSUBSCRIBE] wallpanel@<IP_ADDRESS>:49104 msg: unsubscribe, sub_opts: [nl: 0, qos: 2, rap: 0, rh: 0, sub_props: [Subscription-Identifier: 1], subid: wallpanel], topic: wallpanel/command
2022-09-29T16:11:50+00:00 [SUBSCRIBE] wallpanel@<IP_ADDRESS>:49106 msg: subscribe, sub_id: wallpanel, sub_opts: [nl: 0, qos: 2, rap: 0, rh: 0, sub_props: [Subscription-Identifier: 1], subid: 1], topic: wallpanel/command
2022-09-29T16:11:50+00:00 [UNSUBSCRIBE] wallpanel@<IP_ADDRESS>:49105 msg: unsubscribe, sub_opts: [nl: 0, qos: 2, rap: 0, rh: 0, sub_props: [Subscription-Identifier: 1], subid: wallpanel], topic: wallpanel/command
2022-09-29T16:11:50+00:00 [SUBSCRIBE] wallpanel@<IP_ADDRESS>:49106 msg: subscribe, sub_id: wallpanel, sub_opts: [nl: 0, qos: 2, rap: 0, rh: 0, sub_props: [Subscription-Identifier: 1], subid: 1], topic: wallpanel/command
2022-09-29T16:11:50+00:00 [SUBSCRIBE] wallpanel@<IP_ADDRESS>:49106 msg: subscribe, sub_id: wallpanel, sub_opts: [nl: 0, qos: 2, rap: 0, rh: 0, sub_props: [Subscription-Identifier: 2], subid: 2], topic: wallpanel/command

<EMAIL_ADDRESS>

I also have another strange behavior and I dont know if t's related.
When sometimes I try to disable camera using mqtt, wall panel suddently close off MQTT connection and become offline. I got no sensor publishing anymore. It become online again after a long time or the day after when a full restart has been done during the night.
@FredericMa Would you say your PR #33 could fix this kind of issue as well ? I see that you did a fix about reconnect logic.


Make header links interpolated based on config

Fixes #383

Coverage increased (+0.02%) to 79.444% when pulling 214ee461ce56b4179fc916ad3f9fa035ef38662f on env-header-links into fe2c43a0d0584743e13e339d616e89563404e238 on master.


Update for compatibility with stimulus_reflex 3.4

StimulusReflex 3.4 adds a few methods that StimulusReflex::TestCase::TestChannel needs to stub.
Additionally, in SR 3.4 StimulusReflex::Channel has been moved to being autoloaded by Zeitwerk and is not available at the Bundler.require stage.  I've updated the README with revised installation instructions that require stimulus_reflex_testing in rails_helper.
This fixes #6

@jasoncharnes Any chance of this getting some eyes? Its blocking my CI pipeline for some reason

@existentialmutt thank you for this PR! 🙏 @scottbarrow thanks for the reminder!
I will make a point to look at this today!

@existentialmutt thanks for working on this! I'll cut a new release over the holiday break! In the meantime, if anyone needs to point to this these changes are in main.


remove webpki

This fixes cargo audit. Required updating rustls.
The security issue in the webpki crate was recently fixed, but the fixed version is incompatible with the version of rustls we are using, and in the process of updating rustls it turns out we don't need to use webpki directly anymore.

This update only affects pushpin-publish. TLS still works as expected:
% target/debug/pushpin-publish -u $REALM_ID:$REALM_KEY --spec https://api.fanout.io/realm/$REALM_ID test yo
Published


Empty string in sheet template field choices displays empty options dialogue

When an ISA-tab template includes a choice variable with one of the items being an empty string, the drop-down menu in SODAR's Samplesheets > Create from template for that variable is empty i. e. displays no items at all. This can be seen with the current version of the MS Metabolomics Biocrates kit ISA-tab template. Variables:

Biocrates metidq version
Metaquac version

Expected behaviour: Drop-down menu displays empty line for empty string choices.

Interesting, maybe this is some Django feature. I'll take a look later this week.

Fixed by @sellth.


Module API

Still a WIP...
Port module api page from old docs.
Took the content from https://webpack.github.io/docs/api-in-modules.html and
started re-organizing it. This is still a work in progress.
Fixes #1099 and adds a significant bit of missing documentation.

@simon04 @bebraw this is still a first draft, but I'm interested in your thoughts on the structure which I changed a bit from the original page in the old docs. I think it will read better this way as most things are now grouped by style usage.

@bebraw @simon04 I think this is good to go... can one of you give it another quick skim before I merge? I tried to simplify some of the examples and clean up some of the grammar in the descriptions.


KOReader wrapper script: fix LD_PRELOAD error

Current wrapper script was probably intended only for rM2. In rM1 it triggers this error indefinitely every 2 seconds:
ERROR: ld.so: object '/opt/lib/librm2fb_client.so.1' from LD_PRELOAD cannot be preloaded (internal error): ignored.

Fix: Check the device version and execute a different command accordingly

This is an expected warning, and working as intended. The error is also raised on the rM2 for any executables that it attempts to run from entware.
Ideally this would be updated to use rm2fb-client, but that needs a bit of extra work to avoid having the process show up as rm2fb-client, and instead as what is actually running, which is why the script is implemented as such here.


Split GitHub comments into multiple comments if plan output is long

GitHub has a max of 65,535 characters per comment. So in case of a long plan output, it is not sent to GitHub comment and throws an error within the Job
failed to report strategy:
error while sending job comments error editing comment: PATCH https://api.github.com/repos/raouf-xh/terraform-test/issues/comments/xxxxx: 422 Validation Failed [{Resource:IssueComment Field:body Code:custom Message:body is too long (maximum is 65536 characters)}]
failed to report strategy:
Warning: nil passed to plan result, sending empty
Failed to run commands. error while sending job comments error editing comment: PATCH https://api.github.com/repos/raouf-xh/terraform-test/issues/comments/xxxxx: 422 Validation Failed [{Resource:IssueComment Field:body Code:custom Message:body is too long (maximum is 65536 characters)}]
Error: Process completed with exit code 5.

Fix would be splitting the comment into multiple comments if it's over that size.

I've got the same error message, but we're running in no-backend: true mode and with 20+ workflows.
I can see that the comment is patched probably 2-3 times per workflow (each of the sections "Plan output", "Terraform plan validation check" and "Plan summary"?) so we actually end up with the later workflows being able to append their validation + plan summary (because they're still within the limit) but loose the Plan outputs, until all of them fail once the 64kb is filled up.
I've tried flipping the post-plans-as-one-comment but can't see that it has any effect in our setup, it's always a single comment. I'd be happy with splitting the comments per workspace as a solution for now.
Another possible way would be to be able to limit which of the sections that is written to the comment. In my case we would be happy with the Changes to Outputs: part of the Plan output rather than all of the lines with "Refreshing state..." for each of the resources (and if possible rather a link to easily jump to the complete log from the action?)
A third option would be to just splitting it into multiple comments as it is.

@agjendem it should be possible to configure split out comments using reporting-strategy: multiple_comments in the workflow file should make digger post multiple comments, if it does not work for you that needs to be investigated as well

@agjendem it should be possible to configure split out comments using reporting-strategy: multiple_comments in the workflow file should make digger post multiple comments, if it does not work for you that needs to be investigated as well

Thanks @motatoes, that actually works for me! (Didn't notice the default value in the docs and had it set to latest_run_comment)


Fix "Prefer format() over string interpolation operator" issue

This pull request automatically fixes all occurrences of the following issue:
Issue type: Prefer format() over string interpolation operator
Issue details: https://www.quantifiedcode.com/app/project/gh:ping:instagram_private_api_extensions?groups=code_patterns/%3A4ACGxFj1
To adjust the commit message or the actual code changes, just rebase or cherry-pick the commits.
For questions or feedback reach out to<EMAIL_ADDRESS>Legal note: We won't claim any copyrights on the code changes.
Cheers,
Cody - Your code quality bot

Coverage remained the same at 94.884% when pulling 8e0092981a8ee0aec2bcbdb12d97559adf11073f on autofix/wrapped2_to3_fix into d38d4a1f83e39b50fd050d049fcba03358e9042d on master.


Folder opening issue ubuntu

I have ubuntu 20.x and recently installed ocamlfuse, it worked fine for a bit and it now has a problem.
It works fine in a terminal with bash but all desktop apps hang opening one particular folder, other folders are fine. 3rd level folder down tree.
Files OK in browser
Also at one stage I appeared to have two identical sub-directories in one directory (same one as above) . Fixed with re-boot.
Main problem does not go away.

I left the browser hanging and some time later it opened the folder and that folder has been OK since.


fixed pylint errors

My bad! of course forgot to check the pylint for the fork... Should be fixed now.

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

Comparison is base (e5ff747) 100.00% compared to head (d29ab4a) 100.00%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##              main       #54   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            5         5
  Lines          105       105
  Branches         7         7
=========================================
  Hits           105       105

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


fixed #1997 - [closed]

In GitLab by @liyanq528 on Mar 26, 2019, 06:27
Merges issue#1997 -> dev

In GitLab by @wknet123 on Nov 13, 2019, 11:41
The test coverage for backend is %  38.87%  , check  console log

In GitLab by @wknet123 on Nov 13, 2019, 11:41
closed