Please add Milwaukee, WI

Subject: Defund MPD, Reallocate for Social Equity
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Dear Milwaukee Councilmembers,

My name is [x] and I am a resident of [NEIGHBORHOOD/CITY].
I am extremely concerned with the City of Milwaukee’s inordinate investment in the Milwaukee Police Department (MPD) at the expense of critical youth, education, and health services.
I am asking that the Milwaukee Common Council make a more overt and visible commitment to racial justice. I demand that the budget vote be delayed so that Council may find ways to redirect money away from Milwaukee Police Department’s overinflated budget. I urge you to pressure the City Manager’s Office towards an ethical and equal reallocation of the city’s expenditures, away from MPD, and towards sectors that facilitate the dismantling of racial and class inequality.
Research shows that a living wage, access to holistic health services and treatment, educational opportunity, and stable housing are far more successful at reducing crime than police or prisons. As such, I demand more aggressive financial support be directed to those areas.
I also urge the Milwaukee Common Council to enact legislation that holds police accountable and to overturn policies that allow police to engage in unlawful behavior with impunity. Justice will only be served when the police are reformed, and this will not be possible until we defund them.
People are marching in the streets because they know that these actions will result in a healthier, more just society. I implore you to please listen to the needs of your constituents and take immediate action to address their concerns.
Can I count on you to consider an alternative budget that puts a focus on social service programs?
Thank you,

[x]

It's up!

Thank you so much!!


Regression: Flings on iOS have too-high velocity

When I quick slide interface, why always bounce back?

When you say "slide", do you mean something to do with scrolling?

yes, scrolling!

We just got a report of this from customer: leafy as well.

Leafy reproduced this on an iPhone 5s.  I have lots of iOS devices if someone needs one to repro. :)

I would first check if backing out https://github.com/flutter/flutter/pull/7363 fixes it

This is a bad regression which blocks folks shipping on iOS.  Definitely need an update today. :D

Reverting #7363 does fix this problem.  Narrowing down the source of the problem now...


elixir/gulp integration

@nWidart Are there plans to support gulp/elixir to publish assets from modules to the public folder?
I found an npm package that could help: https://github.com/andywer/gulp-elixir-modules . The package is outdated and does not work with Laravel 5.3, due to changes in elixir, but maybe it's a good startingpoint.

You already can publish those assets with elixir.
For instance on AsgardCMS I use the following:
var task = elixir.Task;
elixir.extend("stylistPublish", function() {
    new task("stylistPublish", function() {
        return gulp.src("").pipe(shell("php ../../artisan stylist:publish " + themeInfo.name));
    }).watch("**/*.less");
});

Hello,
I'm not very advanced on the frontend side, so not sure what you want here.
Can't your gulpfile handle this logic ?

No problem. Thx for the feedback.
We are developing an npm-module ourselves to automate the process of generating assets in the public-folder. I have to check if we can oepn-source this, but I'll let you know if we do. It could be handy for other developers using the same approach as us.

Awesome. Feel free to post the link to it here if/when you can. 👍

I don`t know if help, but with webpack.mix from Laravel 5.4 i can use the require to call another script in each module.
Main webpack:
require('./Modules/Admin/webpack.mix.js');

Admin Webpack:
const { mix } = require('laravel-mix');
mix.sass(__dirname+'/Assets/scss/app.scss', 'public/modules/Admin/css');

I wrote this little artisan command that could automatise mix integration:
https://github.com/balping/asset-bundler

This is really cool, well done! 👍


Remove old feature flags - SMS_SENDER_RATE_LIMIT_ENABLED

User Story - Business Need

[ ] Ticket is understood, and QA has been contacted (if the ticket has a QA label).

There were old feature flags identified when working on #1711. While reviewing which task definitions to be removed, it was observed that several task definitions were old feature flags that were all set to True or never turned on. These feature flags with their related task definitions, code paths, and tests should be removed. See additional information to see list of feature flags.
The focus on this ticket is specifically to remove the feature flag SMS_SENDER_RATE_LIMIT_ENABLED. It is used in three if statements in the code base.

User Story(ies)
As a    VA Notify Developer,
I want remove old SMS_SENDER_RATE_LIMIT_ENABLED feature flag with related code paths  and task definitions
So that the code runs efficiently and continues to be maintainable.
Additional Info and Resources

See spreadsheet created for ticket #1711 - filter by 'feature flag removal' under the 'removal status' column
There's the Feature Flags that were identified for removal while working on #1711
Acceptance Criteria

[ ] SMS_SENDER_RATE_LIMIT_ENABLED feature flag with related task definitions, code paths, and tests are removed
[ ] SMS_SENDER_RATE_LIMIT_ENABLED removed from all three if statements
[ ] If there's any updated logic that is not covered by testing, please write tests, tests in DEV and make a note fore QA on new untested logic.
[ ] Test suite and regression test run without fail

QA Considerations

Test any new/untested logic written by developer. Developer to make notes for QA.

Potential Dependencies

Hey team! Please add your planning poker estimate with Zenhub @cris-oddball @EvanParish @k-macmillan @MackHalliday @mchlwellman


tx-storm tuning

no metainfo in tx;
params;

Codecov Report

Merging #380 into scope3 will decrease coverage by 0.14%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           scope3    #380      +/-   ##
=========================================
- Coverage   48.84%   48.7%   -0.15%
=========================================
  Files         127     128       +1
  Lines        8889    8905      +16
=========================================
- Hits         4342    4337       -5
- Misses       4188    4208      +20
- Partials      359     360       +1

Impacted Files
Coverage Δ

gossip/handler.go
49.64% <ø> (-0.01%)
:arrow_down:

cmd/tx-storm/sender.go
0% <0%> (ø)
:arrow_up:

cmd/tx-storm/txgen.go
0% <0%> (ø)
:arrow_up:

cmd/tx-storm/threads.go
0% <0%> (ø)
:arrow_up:

cmd/tx-storm/acc.go
26.08% <0%> (+2.08%)
:arrow_up:

cmd/tx-storm/feedback.go
0% <0%> (ø)
:arrow_up:

cmd/tx-storm/txs_dict.go
0% <0%> (ø)

gossip/execqueue.go
89.13% <0%> (-2.18%)
:arrow_down:

evm_core/tx_pool.go
76.61% <0%> (-0.28%)
:arrow_down:

Continue to review full report at Codecov.

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


v2.0.0-beta.3 ( Latest release) Does not run on Fedora 33

Etcher version: v2.0.0-beta.3
Operating system and architecture:  Fedora 33 -amd64
Do you see any meaningful error information on DevTools? (not running OSX)
Based on this i am going to guess you need to update your dependencies.
error is as follows:

[notroot@redacted pinephone]$ ./pine64-installer-2.0.0-beta.3-linux-x64.AppImage
/home/notroot/.cache/thumbnails/normal/0acc4b91ec8e4c2ea18058766a12f6c2.png is missing. Probably not running ./bin//pine64-installer.wrapper from within an AppImage.
Hence falling back to using .DirIcon
(pine64-installer:84118): Pango-ERROR **: 20:45:17.017: Harfbuzz version too old (1.2.7)
Trace/breakpoint trap (core dumped)

Got essentially nothing from gdb, but here you go...

Reading symbols from pine64-installer...
(No debugging symbols found in pine64-installer)
(gdb) run
Starting program: /home/notroot/pinephone/debug/usr/bin/pine64-installer
[New LWP 85504]
[Detaching after fork from child process 85505]
[New LWP 85507]
[New LWP 85508]
(pine64-installer:85500): Pango-ERROR **: 20:59:52.788: Harfbuzz version too old (1.2.7)
Thread 1 "pine64-installe" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff5b3e93b in ?? ()
(gdb) bt
#0  0x00007ffff5b3e93b in ?? ()
#1  0x000001c75596c4d0 in ?? ()
#2  0x0000000000000006 in ?? ()
#3  0x00007fffffffb6b0 in ?? ()
#4  0x0000000000000004 in ?? ()
#5  0x0000000000000000 in ?? ()

Same problem here...


nsd 4.10.0 x86 builds failed

👋 trying to build the latest release, but run into some build issue. The error log is as below:

error build log
  In file included from ./src/haswell/parser.c:12:
  ./src/haswell/simd.h:88:21: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'simd_loadu_8x64' that is compiled without support for 'avx'
    simd->chunks[0] = _mm256_loadu_si256((const __m256i *)(address));
                      ^
  ./src/haswell/simd.h:88:21: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
  ./src/haswell/simd.h:89:21: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'simd_loadu_8x64' that is compiled without support for 'avx'
    simd->chunks[1] = _mm256_loadu_si256((const __m256i *)(address+32));
                      ^
  ./src/haswell/simd.h:89:21: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
  ./src/haswell/simd.h:95:21: error: always_inline function '_mm256_set1_epi8' requires target feature 'avx', but would be inlined into function 'simd_find_8x64' that is compiled without support for 'avx'
    const __m256i k = _mm256_set1_epi8(key);
                      ^
  ./src/haswell/simd.h:95:21: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
  ./src/haswell/simd.h:97:22: error: always_inline function '_mm256_cmpeq_epi8' requires target feature 'avx2', but would be inlined into function 'simd_find_8x64' that is compiled without support for 'avx2'
    const __m256i r0 = _mm256_cmpeq_epi8(simd->chunks[0], k);
                       ^
  ./src/haswell/simd.h:97:22: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
  ./src/haswell/simd.h:98:22: error: always_inline function '_mm256_cmpeq_epi8' requires target feature 'avx2', but would be inlined into function 'simd_find_8x64' that is compiled without support for 'avx2'
    const __m256i r1 = _mm256_cmpeq_epi8(simd->chunks[1], k);
                       ^
  ./src/haswell/simd.h:98:22: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
  ./src/haswell/simd.h:100:33: error: always_inline function '_mm256_movemask_epi8' requires target feature 'avx2', but would be inlined into function 'simd_find_8x64' that is compiled without support for 'avx2'
    const uint64_t m0 = (uint32_t)_mm256_movemask_epi8(r0);
                                  ^
  ./src/haswell/simd.h:100:33: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
  ./src/haswell/simd.h:101:33: error: always_inline function '_mm256_movemask_epi8' requires target feature 'avx2', but would be inlined into function 'simd_find_8x64' that is compiled without support for 'avx2'
    const uint64_t m1 = (uint32_t)_mm256_movemask_epi8(r1);
                                  ^
  ./src/haswell/simd.h:101:33: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
  ./src/haswell/simd.h:110:21: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'simd_find_any_8x64' that is compiled without support for 'avx'
    const __m256i t = _mm256_loadu_si256((const __m256i *)table);
                      ^
  ./src/haswell/simd.h:110:21: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
  ./src/haswell/simd.h:113:5: error: always_inline function '_mm256_shuffle_epi8' requires target feature 'avx2', but would be inlined into function 'simd_find_any_8x64' that is compiled without support for 'avx2'
      _mm256_shuffle_epi8(t, simd->chunks[0]), simd->chunks[0]);
      ^
  ./src/haswell/simd.h:113:5: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
  ./src/haswell/simd.h:112:22: error: always_inline function '_mm256_cmpeq_epi8' requires target feature 'avx2', but would be inlined into function 'simd_find_any_8x64' that is compiled without support for 'avx2'
    const __m256i r0 = _mm256_cmpeq_epi8(
                       ^
  fatal error: too many errors emitted, stopping now [-ferror-limit=]
  clang -I/usr/local/opt/libevent/include -I. -I/usr/local/opt/openssl@3/include -I./simdzone/include -g -O2 -flto -c namedb.c
  20 errors generated.

full build log, https://github.com/Homebrew/homebrew-core/actions/runs/9499842527/job/26183926937
relates to Homebrew/homebrew-core#174464

Hi @chenrui333!
I've commented the following on a Homebrew/homebrew-core#175796 opened by @anandb-ripencc:

Hi all! 👋 I'm looking at this issue to find out why this is not properly compiling for Homebrew. It seems like the compiler(s) aren't handling target dependencies correctly. E.g. code in westmere gets compiled with -march=westmere, but for Linux it's complaining about missing POPCNT (which is part of SSE4.2 and thus Westmere) and on Apple x86_64 it's complaining about needing PCMUL (also part of Westmere). Of course, there's also the errors related to Haswell. I tried to reproduce, but couldn't on my local machines.

The really quick-fix is to just pass --disable-westmere and --disable-haswell to configure. However, I would like to know why this issue exists. Perhaps, it's as simple as passing e.g. -mpopcnt and -mpclmul to get westmere working? Any way I can easily debug this in a Homebrew build environment?

@wcawijngaards made a PR that checks if Westmere and Haswell specific code actually compiles (see #211), but it needs a little bit of work. It might also not be the right way to go about this because now we at least see something is off, if we check on configure we simply disable it even though it should work.
I'd like to find out why this fails in the Homebrew environment, but I need a way to reproduce.

@chenrui333, the fixes have been integrated in NLnetLabs/simdzone#211. Detection of intrinsics should fail, so you won't get the best performance kernels, but building should work just fine with the upcoming 4.10.1 release. Closing this. Be sure to let us know if things are still failing with the new release.


Make it easier to open multiple repositories in one workspace

Currently, if you try to open a workspace it will automatically launch the folder configured in the API response.
If there is no default folder, then the plugin will ask you to open a recent folder that has been opened before in that workspace.
If there are no recents, then it opens a blank window, and from there you can open a directory through File > Open.
The default folder stuff works fine if you have one repository per workspace, but how can we make it easier to open multiple repositories?
One idea is that we can ask to open a recent, but we can also show an option that allows you to pick any arbitrary file path.
Another idea is to somehow get a list of all the repositories on the workspace and then ask the user which to open, but this would require more brainstorming.  Those directories would need to come from the API somehow.  Maybe something on the template?
Open to other ideas.

The code in question:
https://github.com/coder/vscode-coder/blob/c6e7f3630b3bf51c0cd4719dc3c55d1d913dde9f/src/commands.ts#L517-L524
I think the strategy is:

Add a description saying these are the folders that have been opened before on this workspace, and would you like to open one of them?
Add a "open new" button that launches a file picker and lets you pick any directory on the remote, if possible.  I am not sure something like this is built in.

The ability to set a home folder like you can with the Jetbrains Gateway would be very nice. Currently every time you open the workspace you have to open the folder once VSCode launches

Related to #245 and the https://registry.coder.com/modules/vscode-desktop module can open a workspace file when folder is set to the path of a .code-workspace file.


Fix createHiddenInputs

Hey guys!
Right now we're not creating hidden fields when the select field has no value, so it's hard to check if the user is trying to delete all entries from the specific select field. It would be better to create an empty hidden field so we can receive [''] in the backend and treat it accordingly.
@chute/backend (since it's related to ActiveAdmin)

:+1:


Radar and F4 Maps

Hiya,
2 more companies that do various geospatial things:

https://www.f4map.com/
https://radar.com/

Cheers!

Thanks @dchirst
Added radar, leaving off f4map. Belongs to https://www.f4-group.com/ which develops videogames & 3d mapping, but a bit strange website & half the people on linkendin are hidden profiles.


EAD None appends zero to the messages

Even though the project is built with ead-none, a 00 is appended to the end EDHOC messages exchanged. This is because ead/edhoc-ead-none handler does not return None value but Some(EADItem::new()) which is encoded with label 0.
To test, trigger a handshake between coapserver and coapclient examples and open Wireshark.

Resolved with #89


Add Spell Check?

Is it possible to incorporate Chrome's native spell check feature into the code area on the left?

Unfortunately, it's a hard problem.

Darn. No problem. :)


[STORM-2961] Refactor addResource and addResources Methods in BaseConfigurationDeclarer

In duplicated code, TransactionalTopologyBuilder.addResource method implementation caused NPEs, motivating this cleanup.

@HeartSaVioR Thank you, I fixed the indentation.


Is there a way to use multiple GPUs to evaluate a style?

Is there a way to stylize an image using multiple GPUs to speed up the process?

I don't think that's possible with this algorithm, I'm not seeing obvious places in the graph where it would be possible to parallelize ops.

I think you can run the algorithm twice. With one command line set stylize.py to one gpu
--Device gpu:0, and the the other one(s)
--Device gpu:1


⚠ GitLab Server has degraded performance

In 17a5ed9, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 11672 ms

Resolved: GitLab Server performance has improved in d5b1789.


To stop a Yo error.....

Between steps 2 and 3 I have to run npm "install @microsoft/generator-sharepoint"

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

ID: 6c25a90e-829c-b436-d8ab-f9c010588ee1
Version Independent ID: 768fa9a1-2375-fb5a-be58-cb66320cc789
Content: Build your first SharePoint client-side web part (Hello World part 1)
Content Source: docs/spfx/web-parts/get-started/build-a-hello-world-web-part.md
Service: unspecified
GitHub Login: @spdevdocs
Microsoft Alias: spdevdocs

You will need to absolutely have indeed SharePoint Framework Yeoman generator installed. Set up your development environment article is a pre-requirement for this article as noted at the start of the page.


Revisit client configuration

Terraform is configured to deploy a client EC2 instance (if var.clients is non-zero), but there is no ansible configuration to install the Redpanda CLI
var.clients is an unbounded integer value, but maybe it should just be a boolean
Wouldn't users still need to connect directly to nodes at some point (viewing logs, etc.)? Having a client seems like an added step, and we would need to explain to the user when to connect to the client and when to just connect to the node. Possibly a better route would be to remove the client.

Sounds like with need a Redpanda client role that will configure /etc/redpanda/redpanda.yaml with the rpk values. Would need a bit of refactoring for the /etc/redpanda/redpanda.yaml template, but otherwise it's a reasonable request.


Rancher 2.5.9 uninstall via helm on RKE2 cluster with CIS profile active does not honor podSecurityPolicies for uninstall job

SURE-3193
Rancher Server Setup

Rancher version: 2.5.9
Installation option (Docker install/Helm Chart): helm chart

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc): rke2 with cis 1.6 profile active

Information about the Cluster

Kubernetes version: 1.20
Cluster Type (Local/Downstream): Local

Describe the bug
helm uninstall rancher -n cattle-system -> gets stuck
kubectl get jobs -A shows rancher-post-delete job that is in FailedCreate
Warning  FailedCreate  17s (x5 over 2m47s)  job-controller  Error creating: pods "rancher-post-delete-" is forbidden: PodSecurityPolicy: unable to admit pod: [spec.containers[0].securityContext.runAsUser: Invalid value: 0: running with the root UID is forbidden
-> seems that the container runs as root and that is not allowed due to security reasons and blocked by the PSP due to that
To Reproduce
Install rancher 2.5.9 via helm in to rke2 cluster with PSP enabled (cis profile 1.6)
Uninstall rancher via helm
Result
Uninstall job does not run
Expected Result
Uninstall job runs

Seems that in the cluster role rancher-post-delete this is missing for secured RKE2 clusters:
- apiGroups:
  - policy
  resourceNames:
  - system-unrestricted-psp
  resources:
  - podsecuritypolicies
  verbs:
  - use

Thanks for digging in and IDing the fix @Martin-Weiss

Looks like this is being addressed in 2.6.0. perhaps we need a backport.
PR: https://github.com/rancher/rancher/pull/33023
issue: https://github.com/rancher/rancher/issues/32878

When do we get 2.6 and which release will be production ready? Or is that already planned for 2.6.0?

Backport PR#33023 to 2.5.10.

https://github.com/rancher/rancher/pull/33069 - backport of PR #33023 to 2.5.x
jiaqiluo merged commit 253edc5 into rancher:release/v2.5 on Jun 7
https://github.com/rancher/rancher/pull/33349 - backport of PR #33023 to 2.5.9
jiaqiluo merged commit c8ad7f3 into rancher:release/v2.5.9 on Jun 25
@Martin-Weiss can we verify that this is still an issue in 2.5.9?

@Martin-Weiss can we verify that this is still an issue in 2.5.9?

Not sure what you are asking - we found this issue in 2.5.9...

Assigning Seb because Jack isn't on the team anymore.

This was validated in v2.5.10-rc1, see https://github.com/rancher/rancher/issues/33068#issuecomment-920260659
It was pulled from v2.5.9 in https://github.com/rancher/rancher/pull/33405

With Rancher 2.5.12-rc2, the helm uninstall seems to not complete fully:
kubectl get pods -n cattle-system                                                                                NAME                               READY   STATUS    RESTARTS   AGE rancher-post-delete-sf8qd          1/1     Running   2          6m9s rancher-webhook-84bfb69844-gl4k6   1/1     Running   0          12m
Uninstalling Rancher resources in the following namespaces: fleet-system cattle-system rancher-operator-system --- Skip the app [fleet-crd] in the namespace [fleet-system] --- Deleting the app [rancher-webhook] in the namespace [cattle-system] Error: warning: Hook pre-delete rancher-webhook/templates/pre-delete-hook-psp.yaml failed: podsecuritypolicies.policy is forbidden: User "system:serviceaccount:cattle-system:rancher-post-delete" cannot create resource "podsecuritypolicies" in API group "policy" at the cluster scope waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... waiting 5 seconds for pods of [rancher-webhook] to be terminated ... timeout uninstalling [rancher-webhook] in the namespace [cattle-system] --- Skip the app [rancher-operator-crd] in the namespace [rancher-operator-system] ------ Summary ------ Failed to uninstall the following apps: rancher-webhook
The rancher-post-delete pod first went to an error state, then running and hung for a while on the webhook (which did fail) then error then crashloopbackooff then running again.

The rancher-post-delete job/pod seems to infintiely re-run and attempt to delete the webhook, but it never will due to this PSP issue

Verified in 2.5.12-rc5
Setup: rke2 local cluster, v1.20.14+rke2r2, cert-manager jetstack version v1.0.1
Cluster is EC2, 3 server nodes, one worker node, t3xlarge/60GB
The uninstall completes cleanly, helm does not error and the cattle-system namespace has no lingering pods.


ask

can i use this program to make android application with kotlin?

No…. You cannotOn Oct 25, 2024, at 6:48 PM, Andi Hasan A @.***> wrote:
can i use this program to make android application with kotlin?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>


Intermittent panic in Alien Cake Addict example

Bevy version
Found this while testing #1703, but it turned out to maybe be an existing system order ambiguity thing.
dd4a19632928556b88ffd53a9f8c3f615fce0095
7b64840bdaa6069eb71d8ed93e2eae84f35915c5 (#1703)
Operating system & version
macOS
What you did
cargo run --example alien_cake_addict and wait. If cake appears, restart and try again.
What actually happened
thread 'Compute Task Pool (5)' panicked at 'called `Result::unwrap()` on an `Err` value: NoSuchEntity', examples/game/alien_cake_addict.rs:333:61
stack backtrace:
   0: rust_begin_unwind
             at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/panicking.rs:493:5
   1: core::panicking::panic_fmt
             at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/core/src/panicking.rs:92:14
   2: core::option::expect_none_failed
             at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/core/src/option.rs:1268:5
   3: core::result::Result<T,E>::unwrap
             at /Users/robparrett/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:973:23
   4: alien_cake_addict::rotate_bonus
             at ./examples/game/alien_cake_addict.rs:333:34

Oops, that's the same stack trace twice. One moment.

Fix incoming

There are two separate panics going on here. I'll open another issue for the other one later.

Added to the milestone due to frustrating intermittent crash that seems to be a regression.


Integrate wgpu-d

Swap chain creation fails due to https://github.com/gfx-rs/wgpu-native/issues/56


Deploy doesn't send the project contents over sometimes

I attempted to deploy the blinky example:
➜  t2-demo  t2 run index.js
INFO Looking for your Tessel...
INFO Connected to Harold over LAN
INFO Writing index.js to RAM on Harold (3.072 kB)...
INFO Deployed.
INFO Running index.js...
module.js:334
    throw err;
          ^
Error: Cannot find module '/tmp/remote-script/index.js'
    at Function.Module._resolveFilename (module.js:332:15)
    at Function.Module._load (module.js:282:25)
    at Function.Module.runMain (module.js:467:10)
    at startup (node.js:117:18)
    at node.js:948:3
INFO Stopping script...

When I checked the T2 directly, there /tmp/remote-script existed but had no file contents.

I then immediately experienced #319.

Here is a clue - it looks like the code starts to untar the contents of the project before the process that creates the folder has been completed:
➜  t2-demo  DEBUG=deploy t2 run index.js --timeout 3
INFO Looking for your Tessel...
INFO Connected to Harold over USB
  deploy Executing command: +0ms stopRunningScript
  deploy Command: +64ms stopRunningScript Completed
  deploy Executing command: +2ms deleteFolder
  deploy Command: +11ms deleteFolder Completed
  deploy Executing command: +1ms createFolder
  deploy Beginning processing of untarring stdin +1ms
  deploy Command: +36ms createFolder Completed
INFO Writing index.js to RAM on Harold (3.072 kB)...
  deploy Process opened. Writing stdin +1ms
INFO Deployed.
INFO Running index.js...
I'm blinking! (Press CTRL + C to stop)

Fixed with #337.


[docs] SEO tags do not render on the server

Server side rendering is not working for SEO tags. Related to #8

Fixed


Difficult to import production version of component into Typescript project

Importing the component to show in production as shown in the readme poses a lot of difficulties in Typescript, would it be better perhaps to maybe be able to flag an .env variable instead? The use case being, we're doing a lot of exploration into models, complex scenes etc. and seeing how it performs in production is really valuable.

@joshuaellis There is also an ESM build available, would it be enough?
import { Perf } from 'r3f-perf/dist/r3f-perf.esm.js';

@joshuaellis There is also an ESM build available, would it be enough?
import { Perf } from 'r3f-perf/dist/r3f-perf.esm.js';

@joshuaellis if you got any quick workaround for that it would be welcome otherwise I'm seriously thinking of just removing the dev/prod condition and let the developer manage it.

@joshuaellis if you got any quick workaround for that it would be welcome otherwise I'm seriously thinking of just removing the dev/prod condition and let the developer manage it.

I think having it remove from prod is a great idea. I think its useful to have a simpler override. Would this work?:
if (process.env.NODE_ENV === 'development' || process.env.R3F_PERF_SHOW_IN_PROD) {
  module.exports = require('./r3f-perf.cjs.development.js')
} else {
  module.exports = require('./r3f-perf.cjs.production.min.js')
}

That's taken from dist/index

I think having it remove from prod is a great idea. I think its useful to have a simpler override. Would this work?:
if (process.env.NODE_ENV === 'development' || process.env.R3F_PERF_SHOW_IN_PROD) {
  module.exports = require('./r3f-perf.cjs.development.js')
} else {
  module.exports = require('./r3f-perf.cjs.production.min.js')
}

That's taken from dist/index

That way in my env file i can set:
R3F_PERF_SHOW_IN_PROD=true

That way in my env file i can set:
R3F_PERF_SHOW_IN_PROD=true

@joshuaellis v.0.79.0 released. It adds process.env.R3F_PERF_SHOW_IN_PROD.

@joshuaellis v.0.79.0 released. It adds process.env.R3F_PERF_SHOW_IN_PROD.


Receive no video - just see start stop disconnect buttons

I execute node server-rpi.js
process is running
can connect to port 8080 from browser on the pi
page comes up but only has the three buttons
clicking buttons doesn't do anything
Is there any logging info?  Are there any diagnostic procedures I could try?


Add a way to use Builder in append mode, that would not write empty blocks on the end of the archive

I've very recently used this library to stream tar.gz output using Rocket. While I was able to do this pretty easily, I had to give up using tar::Builder only because it forces me to call finish in all destructors (e.g.drop or into_inner).
Imagine, that I have StreamedBody struct that implements Read. In read, it loads some resources (for example from the DB or file system) and archives them using tar. Since it loads only data chunk, it also has to produce a chunk of tar = header + data. There is great tar::Builder::append_data method but

Builder has to live only inside Read::read, otherwise I run into borrowing issues (Builder holds a reference to a buffer. In my example, both Builder and buffer would be fields of StreamedBody which is not easily achievable)
because of (1) and because Builder writes empty blocks in drop, every time a chunk is archived, the end of archive mark is written.

I think we could add tar::Builder::continuous(&mut self) that would set a flag and then in tar::Builder::finish we could only write empty blocks if continuous == false.

Thanks for the report! I'm not really sure I fully understand what's going on here, though? Can you perhaps give an example of where this might help things?

Sorry, it seems I really wasn't clear in the initial report. Maybe this code can explain it better:
struct StreamGzResponse {
    // some iterator over files or cursor in DB or smthg similar
}

impl std::io::Read for StreamGzResponse {
    fn read(&mut self, mut buf: &mut [u8]) -> Result<usize, std::io::Error> {
        if self.finished { return Ok(0); }

        if let Some(doc) = self.get_next_document() {
            /* append 1 tar entry to buf, but don't finish tar */
            /* it would be easies using `tar::Builder` but if I create it here,
               it will write [0;1024], which is something that will make
               the next entry not visible for tar -x for example */
            return Ok(doc_bytes.length())
        }

        /* write [0;1024] to buf */
        self.finished = true;
    }
}

Of course it is simplified, e.g. it assumes that buf is big enough to handle one document or even [0;1024] at once, but I hope it shows the intention.
The 'problem' is quite easy to work around but still having opt-out from finish in tar::Builder would be nicer I think.

Hm I'm still not sure I entirely understand. Is the idea that you want to use tar::Builder but when it's destroyed you don't want to finish, but you'd rather keep writing it later? Is there no way to have tar::Builder extend its lifetime to cover the entire write operation?

Is the idea that you want to use tar::Builder but when it's destroyed you don't want to finish, but you'd rather keep writing it later?

Yes, exactly

Is there no way to have tar::Builder extend its lifetime to cover the entire write operation?

Unless I'm missing something - no, at least without additional allocations. See my example std::io::Read implementation example. I'm passing buf to tar::Builder.

Is the idea that you want to use tar::Builder but when it's destroyed you don't want to finish, but you'd rather keep writing it later?

Yes, exactly

Is there no way to have tar::Builder extend its lifetime to cover the entire write operation?

Unless I miss something - no, at least without additional memory. tar::Builder takes underlying writer when it is created, while place, where I want to write, exists only inside std::io::Read::read.
I would need to store tar::Builder with its own buffer inside StreamGzResponse, then in read function write to that buffer to create an archive entry and finally move memory from this intermediate buffer to the target buf.
It sounds unnecessary IMO, especially that all underlying operations are exposed by the crate so I can do it efficiently already, just in a more verbose, less convenient way.

Ah ok makes sense. Given that the tar format is suitable for simply appending anything at any time, it seems reasonable to me to add a function like this to say "don't write the trailing bytes, I'll do that later"


Incosistency when Repo already exists between create/migrate

Gitea version (or commit ref): https://github.com/go-gitea/gitea/commit/d7542bfde3e46b5b11d2296e69f86a0e32ce9565
Git version: 1.7.4
Operating system: any
Database: any
Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Description
There is an incosistency between handling an RepoAlreadyExists error between migrating a repo and creating a fresh one:

migrating repo
creating fresh repo

I think the migrating repo error response  (409 Conflict, The repository with the same name already exists.) should be used in both cases.

This 409 is not documented on the /api/swagger. Could it be added, please?


Upgrade to support latest versions of grpc

grpc no longer exposes connection state. Fortunately we were only
looking at that in a few places and those places weren't really
necessary anyway.

LGTM


Use native types

Fix #170, #143

Codecov Report

Merging #177 (582c65d) into master (b0b6771) will increase coverage by 53.81%.
The diff coverage is 96.68%.

@@              Coverage Diff              @@
##             master     #177       +/-   ##
=============================================
+ Coverage     41.38%   95.20%   +53.81%
+ Complexity      179      139       -40
=============================================
  Files             6        6
  Lines           505      438       -67
=============================================
+ Hits            209      417      +208
+ Misses          296       21      -275

Impacted Files
Coverage Δ

src/LaravelRequestDocsServiceProvider.php
100.00% <ø> (ø)

src/LaravelRequestDocsMiddleware.php
67.69% <70.83%> (+67.69%)
:arrow_up:

src/Controllers/LaravelRequestDocsController.php
100.00% <100.00%> (+100.00%)
:arrow_up:

src/LaravelRequestDocs.php
100.00% <100.00%> (+27.48%)
:arrow_up:

src/LaravelRequestDocsToOpenApi.php
100.00% <100.00%> (+100.00%)
:arrow_up:

src/NotFoundWhenProduction.php
100.00% <100.00%> (+100.00%)
:arrow_up:

... and 1 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


How does one pass flags to protoc?

[Enter feedback here]
I.e. to use optional parameters in protobuf it requires --experimental_allow_proto3_optional passed to protoc.  But the documentation doesn't specify how you can pass this parameter and use this vital functionality.

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

ID: 28a7d945-e49f-d76f-a5fd-43ac81dbef80
Version Independent ID: b5b132db-9667-d5a9-8671-002cb2c0277f
Content: Manage Protobuf references with dotnet-grpc
Content Source: aspnetcore/grpc/dotnet-grpc.md
Product: aspnet-core
Technology: aspnetcore-grpc
GitHub Login: @JunTaoLuo
Microsoft Alias: johluo

@JohnGalt1717 There are no supported ways of specifying options that are used by protoc due to limitations of the Grpc.Tools implementation. However, there are ways to work around this with the _GrpcOutputOptions and _OutputOptions metadata on the Protobuf itemgroup. This is not a supported workflow and hence why they have the _ prefix but these two metadata are passed to protoc here. _GrpcOutputOptions is passed to the grpc code generation logic while _OutputOptions is passed to the protobuf code generation logic so you'll need to figure out which one of these experimental_allow_proto3_optional applies to.
As for documentation, since this is an unsupported workflow, we probably won't add any documentation for this.

Ok, but I've tried it on  and  in my csproj and obth throw an error saying that it is unrecognized.


Flow Error In Apollo Query Component QueryRenderProps

Intended outcome:
Tried to add flow to an apollo query component:
<Query query={myQuery} variables={{ myId }}>
  {({ loading, data }: QueryRenderProps<{
    stats: {
      basicStats: any,
    },
  }, {}>) => {

    const { stats } = data
    const { basicStats } = stats

Actual outcome:
Worked without flow, now a flow error occurs when destructuring data. It says "property not found in object type"

Version

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>(also tried v0.77.0)
<EMAIL_ADDRESS>

Are you using the apollo-client definitions from flow-typed? Data is typed as TData | {||} | void in line 905. This is because data does not contain anything while the request is loading.
I think the error comes from the empty object ({||}) in the union type. Maybe edit the type to just be TData to confirm this. I guess the typings for Apollo client could be better there (like a union of an errorsome response, a loading state and a successful response.) but typing it is far from trivial...
To get rid of the error check if data actually contains something:
if (data && data.stats) {
  const { stats } = data
}

Not enough info to repro.


Tox pass for add_managed_relational_db

@gareth-ferneyhough @stfeng
First small PR to this branch. Small fixes to make tox pass.

I will leave this to Gareth for the review and merge. But it seems to me commit a81a20e has "changes" that are mostly part of merge operation. The best way to deal with in the future is to rebase your branch to the head of parent branch and then do a commit. that way, you will see your changes only.

FYI a81a20e changes are not merge conflicts, they are code fixes to make tox pass. 44f9881 is a combination of merge conflicts and code fixes. In the future I will do merge conflicts first and rebase the branch.


MacOS & Termux Binary test

I don't use a macos device and therefore am unable to test, If anyone owns a mac device please help us compiling directly executable binary

I was able to test macos on circleci, termux is still untested but i hope it will work, closing this issue


(WIP)(PUP-5025) Fix epoch and architecture handling for RPM systems

This commit updates logic in the RPM and Yum providers to
better handle the presence or absence of user specified epochs
and architecture fields. We now assert that absent epoch and
architecture values from the user are always insync with those
values as found by querying the system. This allows Puppet to
make the assumption that an unprovided epoch value can match
anything available on the system, not just the former default
of '0'.
Note that there are still limitations based on the underlying
package manager when installing packages. DNF (a child of the
yum provider), for example requires the epoch to be specified
when a package includes one due to a bug. In yum, if an epoch is
specified then the architecture must also be specified.
This commit also refactors the Yum provider slightly to move
some of the more primitive version comparison methods up into
the parent RPM provider.
The second commit adds new acceptance test cases to the existing Yum
test.

CLA signed by all contributors.

This still needs spec test updates, which @branan is working on currently.


Pass a dynamic url, and after logged in, get this url

Hi,
My requirement is like below:
I need to pass a dynamic url when login, such https://example.com/posts/15.
When logged in successfully, I need to get this url in reply endpoint (path option).
How do I implement it?
Thanks

We have had success in passing the parameter in the additionalParameters as a RelayState which comes back on the Response Body in the callback endpoint.

@bnicoloffpge can we close this?

I think we could better document our support of RelayState. RelayState is a standard feature of the SAML spec. It looks like we support it via additionalParameters. It would be helpful for new users searching for this answer if there was a hit in the README when they searched it for RelayState.


Journal issue

With the new update, I did that in order to upgrade my journal :
            if (issue.Journals != null)
            {
                foreach (var journal in issue.Journals.Where(s => !string.IsNullOrEmpty(s.Notes)).ToList())
                {
                    _logger.Information(journal.Notes);
                    journal.Notes = string.Empty;
                    _logger.Information(journal.Notes);
                }
                _manager.UpdateObject(issue.Id.ToString(), issue);
            }

My first logging will display "test3" which is my note, I'll then set it to string.Empty which mean I want to delete it, then I'm making just making sure it got set to null to my second logger ain't logging anything.
I'm then updating my issue but my note ain't getting deleted, am I doing something wrong ?

What version of .NET & Redmine are you using?

What version of .NET & Redmine are you using?

NET 7 and Redmine 4.1.1

Could you tell me if the journal that you want to delete has no value set for 'details' field?

Could you tell me if the journal that you want to delete has no value set for 'details' field?

I just debugged it, the 'details' field is null

Updating journal notes via REST API is available starting from Redmine version 5.0.0 onwards

Updating journal notes via REST API is available starting from Redmine version 5.0.0 onwards

Oh, thanks


Detective dosn't detect keys with parentesis simbols

valores proporcionados I'm submitting a...

[ ] Regression
[x] Bug report
[ ] Performance issue
[ ] Feature request
[ ] Documentation issue or request
[ ] Support request
[ ] Other

Current behavior
When you run the i18n:extract comand the keys with parentesis simbols are not found
Firts than anything: cngratulations on your excelet work
It may be not the best practice to choose words based keys approach, but in this case the manager doen't detect the keys with "(",")" simbols.
PD: sorry if my inglish it's not so good.
Environment
Angular version: 7.2.0
For Tooling issues:

Node version: 10.18.0
Platform: Linux

@luixolema reopen this with an example if still relevant, try using v2.0.0


Add hamburger side menu on mobile devices

Add a menu icon that only appears on mobile devices (less than 768px of width) and add the appropriate css or js to make the menu icon toggle the existing sidebar menu.
As bootstrap is used in this website, you can also use bootstrap to do this functionality.
Font awesome is also used on the website so you can use it for the hamburger menu icon.

Hi, can I work on this?

@valeriaoshiro yes please!

Is your issue resolved ?
i can also help if you need

@hrithiksh101 there's currently a PR but it's not resolved yet. You can try if you want.

I have made some commits to this project , are they done , sorry for asking but i'm first time user of github .

i have also added hamburger menu for the mobile screens , i don't know if i'm late but my commits can be seen in the pull requests section . i don't know if the commits are successfully pushed .
can you confirm ? 😃

Resolved by #58


[Service bus Administration] Unit test cases mocking for GetNamespacePropertiesAsync() & GetSubscriptionsAsync()

Library name and version
Azure.Messaging.ServiceBus.Administration 7.17.1
Query/Question
Hi
I am using Azure.Messaging.ServiceBus 7.17.1 nuget package.
Trying Mock 'ServiceBusAdministrationClient' class and invoking GetNamespacePropertiesAsync() & GetSubscriptionsAsync() and expecting value as true, but it is returning null values. please refer below screen code
Below are the mocking method, but getting issue, can you please help us out to resolve this mocking issue.
GetNamespacePropertiesAsync()
var mockResponseNamespace = new Mock<Azure.Response>();
NamespaceProperties namespaceProperties = null;
mockResponseNamespace.SetupGet(response => response.Value).Returns(namespaceProperties);
mockClient.Setup(e => e.GetNamespacePropertiesAsync(new System.Threading.CancellationToken())).ReturnsAsync(mockResponseNamespace.Object);
var rest = mockClient.Object.GetNamespacePropertiesAsync().Result.Value.MessagingSku;
GetSubscriptionsAsync()
var mockResponseSubscription = new Mock<AsyncPageable>();
mockResponseSubscription.SetupGet(response => response).Returns(new AsyncPageable());
mockClient.Setup(e => e.GetSubscriptionsAsync(It.IsAny(), It.IsAny())).ReturnsAsync(mockResponseSubscription.Object);
Above are the mocking method, but getting issue, can you please help us out to resolve this mocking issue.
Thanks in advance.
Environment
No response

Hi @azad1612.  Thank you for reaching out and we regret that you're experiencing difficulties.   Your code is not valid nor compliable in its current state, but if your actual code is using the same pattern then the likely problems are that your setup is incorrect, that the method you are calling does not return a true/false response, and that you are not populating the NamespaceProperties that you're returning, so the value of your response is actually null.

// There is no value assigned
NamespaceProperties namespaceProperties = null;

// This setup won't ever match because you're bound to a specific instance
// of CancellationToken, which you define inline.
mockClient
    .Setup(e => e.GetNamespacePropertiesAsync(new System.Threading.CancellationToken()))
    .ReturnsAsync(mockResponseNamespace.Object);

This will never match your actual call because you're telling the mocking framework to only match against the specific cancellation token reference that you're creating in the setup.  However, since you create the instance and throw it away, it will never match.   You'd want to use a less restrictive constraint.  For example, in Moq, this would look like It.IsAny<CancellationToken>().
An end to end example would look something like:
var mockResponse = new Mock<Azure.Response<NamespaceProperties>>();
var mockClient = new Mock<ServiceBusAdministrationClient>();

var namespaceProperties = new NamespaceProperties();

mockResponse
    .SetupGet(response => response.Value)
    .Returns(namespaceProperties!);

mockClient
    .Setup(client => client.GetNamespacePropertiesAsync(
        It.IsAny<CancellationToken>()))
    .ReturnsAsync(mockResponse.Object);

var nsResponse = await mockClient.Object.GetNamespacePropertiesAsync(CancellationToken.None);
Assert.That(nsResponse.Value, Is.EqualTo(namespaceProperties));

There is one problem that I noticed while mocking this up; the ServiceBusModelFactory does not allow creation of a populated NamespaceProperties instance for testing.   I've filed #41356 to address that.  In the meantime, you'd have to work around by using reflection to invoke the internal setters:
var namespaceProperties = new NamespaceProperties();

typeof(NamespaceProperties)
    .GetProperty("Name", BindingFlags.Instance | BindingFlags.Public)
    .GetSetMethod(true)
    .Invoke(namespaceProperties, new[] { "value of name" });

The approach for your second example is similar, but requires you to setup the pagables:
var mockClient = new Mock<ServiceBusAdministrationClient>();

// Create a set of subscriptions to use for the first (only) page.
var subscriptions = new[]
{
    ServiceBusModelFactory.SubscriptionProperties(
        "topic1",
        "sub1",
        lockDuration: TimeSpan.FromDays(1),
        defaultMessageTimeToLive: TimeSpan.FromDays(1),
        autoDeleteOnIdle: TimeSpan.FromDays(1),
        maxDeliveryCount: 1,
        userMetadata: "empty"),

    ServiceBusModelFactory.SubscriptionProperties(
        "topic2",
        "sub2",
        lockDuration: TimeSpan.FromDays(1),
        defaultMessageTimeToLive: TimeSpan.FromDays(1),
        autoDeleteOnIdle: TimeSpan.FromDays(1),
        maxDeliveryCount: 1,
        userMetadata: "empty")
};

// Create the pagable with a single page of subscriptions.
var pageable = AsyncPageable<SubscriptionProperties>.FromPages(new[]
{
    Page<SubscriptionProperties>.FromValues(subscriptions,
    continuationToken: null,
    Mock.Of<Response>())
});

mockClient
    .Setup(client => client.GetSubscriptionsAsync(
        It.IsAny<string>(),
        It.IsAny<CancellationToken>()))
    .Returns(Response.FromValue(pageable, Mock.Of<Response>()));

var result = mockClient.Object.GetSubscriptionsAsync("anyTopic");

Assert.That(result, Is.Not.Null);

await foreach (var item in result)
{
    Assert.That(item.TopicName.StartsWith("topic"), Is.True);
}

More discussion and examples can be found in Mocking Service Bus Clients and Unit testing and mocking with the Azure SDK for .NET.

@Piyushmumbaiwala007 :  The same techniques would apply.  There's nothing fundamentally different than the above.   Please reference the article and sample above and adapt for the additional methods.


Incorrect mouse click action when two clickable objects overlap.

One small bug I encountered: when creating a second QM inside our app, if the connection window and the first QM visualization overlap, a mouse click in the connection window will be captured by the QM visualization in the background.

So in the screenshot above, if I click on the input box for apikey, and the current viewpoint has DEV.QUEUE.3 in the background, the mouse click on the apikey input box would bring up the QM info panel.

Fixed.
Add a checking condition in the Queue.cs, OnMouseUp()


"Where should I upload my game, source code?"

One of the things new people often ask is where they should upload their game (and source code).
The easy answer is Itch and Github, but I want a better answer then that.
I would like a nice list I can copy+paste somewhere. I am, of course, a little busy right now (hehe), so I'm looking for volunteers to help make a list.
1. Where should people host their games?
2. I need someone(s) to make a master list (and this looks like a good place to do it)
3. I want the list to be refined. Yes, more options are good, but too many are confusing. Think about what it's like to have participated in Ludum Dare for the first time. You just spent 48 hours crunching together a game.  Oops!
That is the task. I leave it up to you, whomever decides to come here and help out. :smile:
Thanks!

I would suggest considering github.io as a nice free hosting for static files

I'm going to leave the discussion to all of you, but I will say that github.io does require GIT and Source Control knowledge. Not everyone that's new to Ludum Dare knows source control.

You can host your files many places:
The best place for source code is GitHub, but that's probably not the best place for the binaries.
For the binaries go with itch.io because it's easy to use, and you can embed the Unity webGL or UnityWebplayer file you exported if you used that. It also has a really good tool for helping you get mentioned.
Github is what I'd suggest for source because you can upload from the browser, and if you're done then you don't need to know Git. Itch could also host the source as a separate ZIP file.
I started writing this as a guide and ended with suggestions so that's why it looks and reads weird :P

Itch is a great place for games too!

You also have Drive/Dropbox ect.

I'd say no.1 is itch. Number 2 would probably be GameJolt for me. Then your own site. If anyone knows any others that would be good. @zwrawr good point with Drive/dropbox. 2 files linked. One with code and one with game. Obviously they don't need source code if they're doing Jam, but it's probably best to put it there because many start with Comp like me :)

I wrote a blog post on this for the ludumdare.com site:
http://ludumdare.com/compo/2016/12/09/hosting-games/

@arzi42 seems like a good one. Will need tweaking when we're back over to ludumdare.com but that's not hard. I'd say that's pretty comprehensive to be honest. Nice work :)

I've sometimes put mine up on Kongregate and I have (in the past) self hosted my own files, but I usually use Itch.io currently.

@lparkermg How hard is it to host on Kongregate? And do they do downloads / UnityWebPlayer or is it only WebGL or flash over there?

I added GameJolt and GitHub Pages to the list. Kongregate is another one, any comments one that (I have never used it for hosting).

I would reccomend not dropbox, drive, or any of those "free" hosting things:  first of all, a popular game may exceed the limits, causing the need to go get 'another' - second, many of us/many companies block those sites for security reasons.
Itch is fine, and suitable for the task; github / gitlab / are also.
I realize that a lot of people will feel that hosting the files on their own server is out of the question, but as someone who's done that for 20+ years, there are advantages that I see:

I get logs saying how many, when, and what platform.
If the game, itself, is hosted there (html/javascript/etc) then I can see how many times folks return.
I can use that data within the game if I like.
I have control over the system, and can take it down if there are issues without impacting others.

I actually could go on about this... but yeah, in MY opinion, hosting yourself is absolutely an option.

Maybe I will look at a "host yourself" cheap option for future LD things for folks to use. I've got servers, and it might be something folks would be interested in.

@lastebil Hosting yourself is obviously the best, but if you can do that you'll do it anyway. This is for first time LDers who are less likely to know how to do all that and a simple uploader is what they want. But yeah, I agree. If you can use your own website, then do. But Itch does give more publicity because unless you've been doing the website thing for a while it's not going to come up on google for a while.
The idea for a "Host yourself" for LD is a good one, but it depends on how easy it would be to maintain and whether enough people would want it over the other alternatives such as Itch or GameJolt.

What you guys think about Neocities? It that a good option?

I'm just saying we shoudln't leave it out of the list - even for firsttimers.  First timers aren't simple - and we shoudln't treat them as if they were.
But perhaps a "bundle" of "self-hosting" stuff would help - or an uploader tool you refer to - and I'll think about that after the jam.  Or a platform.  Because "48 hours, tired" is a thing.
It should absolutely be at the bottom of the list (:
@rblopes I haven't seen that, but I'll consider testing it - if for no other reason than to see if a 'tool' or 'pack' is better for the 'if you want to self-host' option I'm suggesting (at the BOTTOM of the list (:  )

@crabcrabcam I haven't put anything up on there for a while, though it's easy enough to upload a game. I think it's all webGL now (and maybe flash).

@arzi42 I think that blog post is great! Should we also add some details about source code hosting options? Github, GitLab, Bitbucket, etc.

@dkniffin Thanks!
I can add the source code options too. What's the difference between GitHub and GitLab?

I actually haven't used it, but my understanding is: it's got more features, but it's newer and less popular. Anybody else, feel free to chime in.

@lastebil Can you come in on GitLab? You said you'd used it.

Sorry @crabcrabcam and everyone - I'm preparing for LD (making sure things are ready (:  )
Yes, I have used gitlab in both private and office settings; it's very much like github, except you can self-host it.  They also offer a non-self-hosted version.
It is less popular, but my experience is that it is just as usable as github; I do prefer it for teams.  I haven't used it's new continuous integration features - and I really doubt that's something that would be needed for most LD projects - but maybe it is for some jam folks.  I actually have been using it for myself over github in the past year and a half.
There are some free hosting gitlab places other than gitlab.com - but according to https://about.gitlab.com/gitlab-com/ it's free forever and unlimited.
I'd say, in my own opinion, that gitlab would be something I'd want for a jam team (1+ people) and for single users, either github, gitlab, or bitbucket.

Did some quick looking for other free hosters, and hit some criticism of those 3 from folks who adhere to certain software licensing things (I am not one of those folks, but I acknowledge that it's something one might want to consider) and came across https://notabug.org/ which is a gogs type repository.  No experience with it, or with gogs, have been happy with gitlab (:

@arzi42 that post is excellent, and yes, I'd say maybe add a repo hosting part to it.

@lastebil Thanks! I added the source hosting to the post.

I actually found this useful. I will be using GitHub for the source code (my repo already exists) but wasnt sure where to put the game! Thanks a lot!

Decided to check a little more on Neocities and tried it myself.
It is OK if someone wants to host a simple, small, Web based game. The free subscription gives 100MB storage w/ 50GB bandwidth, upgradable if one's willing to become a supporter, paying a few bucks per month.
The downside, though, is that the free subscription is restricted to hosting a few file types, an info that I couldn't find rightaway before subscribing. It's no surprise at all that they restrict video and audio formats to avoid problems like copyright issues.
So, if those restrictions are not much a problem it's OK to post a game there, I think. Otherwise, better look somewhere else for alternatives or just stick to the ones listed here or in @arzi42's blog post.

Ok, I removed Neocities from the list as it sounds too limited to be much of use in terms of Ludum Dare.

@arzi42, nice, thank you.

Take look at this gist. Its in markdown so it can just be copied to ldjam.com.
I made a gist of based of @arzi42 post, with significant changes.

I reworded a lot of it so that i sounds more like guide from ludumdare rather than a post by a user.
I changed the order and split up hosting and submitting
I added a placehoder section for a "how to submit a game on ldjam.com"
I removed the "which platform" section, because its probably too late to change your platform if your reading a how to submit guide.

This is great. I'll give it a quick read to see if anything jumps out at me.

The "Game Sites" section is actually a sticky subject, and should be made more impartial.

Please add Newgrounds (long time supporter of LD) and Kongregate
Criticism of Advertising should be removed (GameJolt)
Most sites have tagging so "list of LD games" shouldn't be a factor
Itch being first is fine, but its description can be improved to make it more impartial (remove 'common solution, even though it is true)

In the DIY section, I'm a bit reluctant to suggest loomhost, partially because it's the only one, and the other part because I've never heard of them. This guide will be interpreted as us endorsing them, and for the most part we have seen folks use every other mentioned service successfully.
If it exists, I would rather suggest linking an off-site directory of free web hosts, than include loomhost. Again, it's just not something we're qualified to judge.

Added Kongregate
Added Newgrounds
Removed criticism of advertising
Removed reference to tagging
Removed 'common solution' for Itch.IO
Added more "Getting started Guides" if available, otherwise added link to upload point
Removed reference to LoomHost

There are some lists of free web hosting companies but, it's probably easier to google "free web host" than to use them. Here is one http://www.free-webhosts.com/free-web-hosts.php

Good good, I like how you updated the lists to basically say what's supported. And the new blurb under free hosting is good.
I was going to recommend ButBucket earlier (for releases), but when I checked it, Bitbucket actually doesn't support releases. I would suggest double checking GitLab if they support it.

Added Link to GitLab Pages
Added Link to GitLab Tags (releases)
Removed BitBuckit from game hosting section

The Submitting to LudumDare section still needs to be written, but that'll have to wait till the game upload page is finalised

Excellent. That's looking really good. And you're right, the submission section will have to be filled in. But still, that's a pretty good guide on what to expect.
Only thing I would is a couple extra details on source code hosting. For example:

GitHub supports GIT, with an optional SVN interface to your GIT repo (word this better, haha)
BitBucket supports both GIT and Mercurial

I thought about adding a Subversion host, but I really can't recommend sourceforge in good conscience. Google Code used to be my goto, but that's dead now. Assembla is what I used for a project some time ago, but I'm not sure they support open source (would have to check).

Mentioned that GitHub hosts Git repos with support for svn clients
Mentioned that GitLab hosts Git repos with support for svn clients
Mentioned that BitBucket hosts Git and Mercurial repos (didn't find any mentions of svn)
Slight changes to Submitting section.

That's good. I think you've covered the bases well.

Okay, I've posted the current version here:
https://ldjam.com/events/ludum-dare/hosting-guide
I'm going to see if I can quickly fix the anchor linking problem. I'll probably mean changing the links to #l/whatever-its-called, which isn't necessarily github compatible, but ah well. It's too useful a navigation feature.

Just a heads up: On GitHub, one alternative and quicker way to host a game, especially for HTML5 games, is to enable GitHub Pages right in the repository. This article from last year explains how.


Consider how to solve datasets that are high volume but contain few solved captchas

A dataset may contain 1M captchas but only 1 solved captcha initially. The captchas may need to be served in batches so that captchas are solved in a short enough amount of time to ensure that the Provider quickly gains more than 1 solved captcha.

No longer important to business needs


Update spanish strings.

/AzurePipelines run

What happened?

I closed it. I thought you had finished.

No I was waiting for the CI to pass :)

Thanks!


detailed compiler/make/cmake instructions from windows user

The following text was sent by a student for the stockholm workshop who went through and documented her steps to install compilers, make and cmake on her windows laptop:
Compiler
Get your compilers from MinGW (here you have a link on your webpage): click "Download Installer" button on the top right, download mingw-get-setup.exe and install.
Open MinGW installer GUI. In Basic Setup, activate check boxes mingw32-base, mingw32-gcc-fortran, and mingw32-gcc-g++. Click on Installation menu, then "Apply changes". This will install the compilers.
Add MinGW to your user path variable:
In control panel, search for "env", click on "Edit environmental variables for your account". In box for user variables, click PATH, click Edit ..., and add \bin (probably C:\MinGW\bin) at the end of the variables value, separated from the previous entry by a semicolon.
Restart your computer.
Test installations in bash:
gfortran --version
gcc --version
g++ --version
Make
Get make: go to http://gnuwin32.sourceforge.net/install.html and click on "Package List" link in the Installation section. Download and install make. (Here I may add some more details once the website doesn't throw an error any more)
Add make to your user path variable:
In control panel, search for "env", click on "Edit environmental variables for your account". In box for user variables, click PATH, click Edit ..., and add <location-of-make.exe> (probably C:\Program Files (x86)\GnuWin32\bin) at the end of the variables value, separated from the previous entry by a semicolon.
Restart computer.
Test installation in bash:
make --version
Cmake
Install CMake following this page (here you have a link on your webpage). Click on Download on top right. Click on latest stable release. Get 32 or 64 bit version msi file, install.
Add cmake to your user path variable:
n control panel, search for "env", click on "Edit environmental variables for your account". In box for user variables, click PATH, click Edit ..., and add <location-of-make.exe> (probably C:\Program Files\CMake\bin) at the end of the variables value, separated from the previous entry by a semicolon.
Restart computer.
Test installation in bash:
cmake --version

Very cool! Thanks! I will integrate it tomorrow.


[Bug][Module Name]  run sh install.sh get error

Which version of Dolphin Scheduler:
-[1.3.6]

Sorry, This is my mistake, I did not check the environment. thanks.


[Sample] xsodata-simple public schema missing

Describe the bug
xsodata-simple sample does not work as expected. Schema PUBLIC is missing so the table is not created and the xsodata service is not activated

What version of the XSK are you using?
0.9.2

To Reproduce
Steps to reproduce the behavior:

Import xsodata-simple sample
Click Publish
See in the logs that public schema is missing

I tried to create PUBLIC.hdbschema but the log shows the following:
c.s.x.h.d.s.m.IXSKSchemaManagerService - Synchronized a new HDB Schema file [xsodata-simple::PUBLIC] from location: /xsodata-simple/PUBLIC.hdbschema
c.s.x.h.d.p.h.HDBSchemaDropProcessor - Processing Drop Schema: PUBLIC
c.s.x.h.d.p.h.HDBSchemaDropProcessor - Schema [PUBLIC] does not exists during the drop process
c.s.x.h.d.p.h.HDBSchemaCreateProcessor - Processing Create Schema: PUBLIC
c.s.x.hdb.ds.facade.XSKHDBCoreFacade - CREATE SCHEMA "PUBLIC"
c.s.x.hdb.ds.facade.XSKHDBCoreFacade - SAP DBTech JDBC: [362]: invalid schema name: PUBLIC: line 1 col 15 (at pos 14)
com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: [362]: invalid schema name: PUBLIC: line 1 col 15 (at pos 14)

Expected behavior
Sample works upon publishing
Additional context
SAP HANA Cloud trial environment version <IP_ADDRESS>.1632216107

The sample works fine with a schema different than PUBLIC for HANA DB. When trying to create a PUBLIC schema on the HANA DB the process fails as the PUBLIC schema is a special schema keeping synonyms and the user has no privileges using it.


add: watch3r.app

Thanks for merging my PR, I'm adding another FOSS app I made that should satisfy the "darkonly" criteria.
This PR is:

[x] Adding a new domain
[ ] Updating existing domain
[ ] Changing domain name
[ ] Removing existing domain from list
[ ] Website code changes (darktheme.club site)
[ ] Other not listed

[x] The domain is in the correct alphabetical order
[x] The following information is filled identical to the data file

I confirm that I have read the FAQ section, particularly the two red items around minimal pages and inappropriate content and I attest that this site is neither of these things.

[x] Check to confirm

- domain: watch3r.app
  url: https://watch3r.app/
  method: darkonly
  last_checked: 2022-07-20

It sure does. Thanks for adding it to the list!


TexConv - Corrupts Alpha Channel In DXT5 Texture

After trying multiple combinations of arguments (different mipmap levels, different resolutions, including -pmalpha and/or -sepalpha), it seems that the issue would lie more with TexConv than with anything else.
The texture is the "DirtPath01_D.DDS" that is used by Fallout 4. Running the texture through TexConv causes the alpha to corrupt,
Screenshot of the texture (after being resized through TexConv) itself: http://i.imgur.com/WsUPHd6.png
Screenshot of the texture used in-game: http://i.imgur.com/tGnc66N.png
I've attached an archive containing texconv.exe, the original texture file, the resultant texture file, the texture file to be processed and a .bat file.
Tex.zip
The .dds format used by the texture is BC3_UNORM_2D.
So aye, seems like TexConv doesn't like the alpha channel in that image for some reason, causing the pixels at the edge of the texture (where colour meets 100% transparency) to corrupt. The alpha channel itself, however, looks fine.

All three of these files look correct on my system.
-m 2 means you are forcing it to only have 2 mipmap levels, which isn't what the "DirtPath01_D - Original, working alpha.DDS" file has which is
DirtPath01_D - Original, working alpha.DDS
Flags 000a1007: CAPS HEIGHT WIDTH PIXELFORMAT MIPMAPCOUNT LINEARSIZE
2048 x 2048
Linear Size: 4194304
Mipmap count: 12
Surface flags: 00401008: COMPLEX TEXTURE MIPMAP
PIXELFORMAT: 00000004: FOURCC
FourCC = 894720068 'DXT5'
DXGI_FORMAT_BC3_UNORM

DirtPath01_D - Resized, broken alpha.DDS
Flags 000a1007: CAPS HEIGHT WIDTH PIXELFORMAT MIPMAPCOUNT LINEARSIZE
512 x 512
Linear Size: 262144
Mipmap count: 2
Surface flags: 00401008: COMPLEX TEXTURE MIPMAP
PIXELFORMAT: 00000004: FOURCC
FourCC = 894720068 'DXT5'
DXGI_FORMAT_BC3_UNORM

Forcing it to use an unusual mipmap count could be part of the problem. For example, VS 2015's DDS viewer won't show any mipmap levels if you have a partial chain. You should probably drop -m from your command line or specifying -m 0 for a full mipmap chain.

Ah, I should have mentioned. I have resized with the proper mipmaps before, and the result was the same. As well as not specifying any arguments (so just "texconv DirtPath01_D.dds"), and the edge of the texture was still corrupted.
To clarify, are you viewing the texture in Photoshop via the Intel Texture Works plugin?

I viewed the DDS files in VS 2015, VS 2013, VS 2012, and the legacy DXTex tool from the deprecated DirectX SDK. There's no 'yellow' highlight in any of the three DDS files you sent.

I'd recommend loading the .dds files in Photoshop, as it has shown that when the texture is run through texconv.exe, it generates that yellow highlight, for another user that bothered to inform me about it. It doesn't seem to be an isolated issue, especially with Fallout 4 itself showing the yellow highlight in-game, when using the "DirtPath01_D - Resized, broken alpha.DDS" texture.
Said user took a video to demonstrate, which can be found @ this post: https://forums.nexusmods.com/index.php?/topic/4789425-resizing-dds-corrupts-edge-blending/?p=41715940

I see it in your screenshots and in that video, but I don't see it in any viewer I have access to.
Generally alpha "corruption" issues have been traced back to WIC using premultiplied alpha for resizing which can damage alpha channels containing something other than transparency. The -sepalpha switch avoids this.
Did you use the prebuilt texconv EXE from GitHub or did you build it yourself?
It is possible that there's a parsing bug in the DDS loader used by Photoshop, Intel, and Fallout 4 but that seems unlikely.

Ah, I should have mentioned. I'm using the latest released texconv.exe (August 4th) from the releases section. https://github.com/Microsoft/DirectXTex/releases
..Huh. Just ran the .dds through texconv.exe with the -sepalpha flag, and it worked. I swear that it didn't work yesterday when I gave that a go, though I could have been dumb and run it on the already-corrupted texture.
Is there a drawback at all, to including the -sepalpha flag for all .dds files of a given type (e.g, ones containing DXT5 in their header), or is it just a failsafe measure that increases processing time?

Intel's photoshop plugin uses DirectXTex for the file I/O, but they have their own view and BC compression code. They have it on GitHub, but without source. You should file an issue on their GitHub giving them the DDS file that shows up "yellow".

Guess I can fire them a shot.
Did a wee bit of testing, and found something interesting.
If I resize the .dds (without the -sepalpha flag), it corrupts the edges.
If I resize the .dds (also without the -sepalpha flag) and output it as .png, the edges aren't corrupted.
If I then take the resultant .png file and run it through texconv (with or without specifying the argument -f BC3_UNORM), to convert it to .dds, the edges corrupt.

Just to confirm, if you view your "corrupted" DDS files in Visual Studio, do you actually see yellow or not? I suspect there's a bug in the Intel decompression code that may have gotten copied into Fallout.

Alas, I don't have the foggiest idea on how to do that; I'm not even a C# programmer (this Texture Resizer program is my first foray into the language), let alone a C++ guy.
Is there a viewer (or something to that effect) bundled with DirectXTex that I can compile and chuck the .dds into (a la texconv through passing arguments to a command line)? Or is it a bit more complicated than that?

You can just use Visual Studio to open the DDS file and it will let you view it.
You can safely use -sepalpha for all your processing, it is just less efficient since it effectively resizes the image twice.

Huh, didn't know VS could do that. Yup, it shows the texture file without the corrupted edges. I'll go fire this on over to the Texture Works plugin.
And sweet. If there's no alpha data, will -sepalpha cause any untoward problems? Just tried it on a texture with no alpha, and it didn't do anything strange to the texture, so I assume it's safe?


sleep: Adds module for light and deep sleep with examples

A suggestion for an API for light/deep sleep functionality. Tried a few different approaches, but found this to be the one that made the most sense.
The goals that caused me to end up with this API:

Wanted to contain the information about a sleep in a struct and then do the sleep by running the structs sleep().
The sleep struct could have multiple wakeup sources.
Share as much code between light and deep sleep as possible.
Allow "shortcuts" for single wakeup source sleeps: LightSleep::timer(Duration::from_secs(5))?.sleep()?;.

This PR just implements Timer and UART wakeup sources. The reason for doing these two is to demonstrate how two different sources work together, and to show how to handle that one type of source isnt allowed for one type of sleep (no uart wakeup during deep sleep).
This is very much a first draft, so im absolutely open for suggestions. Also have to admit that i still done feel "fluent" in rust, so I might have missed some clever rust stuff
related to https://github.com/esp-rs/esp-idf-hal/issues/287

ill see that comments started coming in as I tried to fix no std issues and just created more issues, so ill pause that for now and will answer comments shortly

to sum up not that I have read through and thought about all comments:

probably do -> ! for deep sleep, and just panic if it fails (do precheck of timer duration so its reasonable >1ms or something?)
that will break the Sleep trait, so then Light and Deep will become separate  structs
I dont want to give up the shared wakeup source concept, at least try that for another iteration cycle.
try to make a heapless vector solution

To sum up my take on this:

to sum up now that I have read through and thought about all comments:

probably do -> ! for deep sleep, and just panic if it fails (do precheck of timer duration so its reasonable >1ms or something?)

Medium priority. I think in the end we can live with either signature.

that will break the Sleep trait, so then Light and Deep will become separate  structs

Not quite. That is an important yet not the primary reason I think the Sleep trait should be gone; the primary reason is because there is not enough overlap (I think) between light and deep sleep sources and treating them uniformly will bring more confusion than benefits. Folks who usually don't read the ESP IDF documentation will be confused that e.g. UART can do deep sleep wakeup (can it?) or that you can use any GPIO pin to wake up from deep sleep (you can't; you can only do this in light sleep, right?) and so on.

I dont want to give up the shared wakeup source concept, at least try that for another iteration cycle.

Sure, though I do not understand why you think this brings any benefit? If you can show me a real life example where you want to abstract over light and deep sleep and treat these two uniformly, I can change my mind, but for now I see this a bit as a "bringing abstractions just because we can" exercise, which might actually sacrifice something more valuable - type safety, where users just can't get it wrong, even if they haven't checked the ESP IDF documentation carefully.

try to make a heapless vector solution

Sure, but that's a detail.

Sure, though I do not understand why you think this brings any benefit? If you can show me a real life example where you want to abstract over light and deep sleep and treat these two uniformly, I can change my mind, but for now I see this a bit as a "bringing abstractions just because we can" exercise, which might actually sacrifice something more valuable - type safety, where users just can't get it wrong, even if they haven't checked the ESP IDF documentation carefully.

Thanks, now I got your point :) I understand now that my priorities were incorrect in this case, and that trading a bit code duplication to make it as easy to use as possible. Ill give it another go soonish

Your pub fn light_sleep(wakeups: &[LightWakeupSource]) suggestion works and looks great for the simpler cases, but when adding more wakeup sources its gets messy since alot of runtime checks is needed. (e.g. you cant have Ext wakeup and touch wakeup at the same time, and probably shoudlnt have two timer wakeup sources)

If that's the case, you might just model this with a
pub enum TouchOrExt0Wakeup {
    TouchWakeup(...),
    Ext0Wakep(...),
}

(UPDATE: I found out you are modelling it exactly like that below.)
With that said, ext0 and touch (and ULP) seem to be only incompatible with each other on ESP32 chip revision < 2. Now that might be too much of a detail to capture at runtime, as we cannot even detect the chip revision at compile time (not sure whether we can do it at runtime either).
In fact, a lot of these incompatibilites in the table below are precisely because of ESP32 revision 0 or 1, aren't they?
Specifically:

Timer     | y       y
UART      | y
EXT0      | y       y       Cannot be used with ULP or Touch

^^^ ESP32 rev 0/1 only

EXT1      | y       y       Not specified, but assume also not usable with ULP and Touch

^^^ Ditto?

Touch     | y       y
GPIO      | y               Cannot be used with ULP or Touch

I can't find anything mentioned about such an incompatibility? Given that the GPIO subsystem is completely separate from the RTC subsystem, while all of ext0/ext1/touch/ULP are in a way related to the RTC subsystem, I find your incompatibility statement hard to believe, actually.

ULP       | y       y
Out of current scope
BT        | y
WIFI      | y
COCPU     | y       y       Not really documented in ESP-IDF

COCPU is ULP. ULP comes in two flavours: FSM ULP (on ESP32, ESP32S2 and ESP32S3) and RISCV ULP (on ESP32S2 and ESP32S3)
. So in a way, esp32s2 and esp32s3 have both, but only one can be active (and that's an esp-idf compile-time configuration even).

In addition, I would argue that there is no reason to have GPIO and RTC at the same time.

So, what do you think of a skeleton structure like this. I believe that would enforce the "rules" compile time, and in a way its very explicit about how its configured. But it feels a bit complicated.

I think it is actually quite OK. Some specific comments below.

pub struct TimerWakeup {
}

pub struct UartWakeup {
}

pub enum LightSleepIOWakeup {
    Ext0,
    Ext1, // might be possible to combine ext0 and ext1
    Gpio,
    UlpAndTouch,
}

As per above, you probably don't need "one of" ext0, ext1, gpio, touch, ulp, as this is ESP32 rev 0/1 only, and we cannot detect that.

pub struct LightSleep {
timer: Option,
io: Option,
uart: Option,
}

That ^^^ would work, for both light and deep sleep (of course, modulo some wakeups for deep sleep).
I don't find this overly complicated, to be honest. Where is the complexity? You can even expose this structure pith pub members directly.

After last post i basically decided that this new way is better, and definatly not complicated. So glad you agree, will update pr shortly, so we can continue discussions based on actual code.
Ill double check what can run at the same time and not, and as far as i can try to test this on hardware (just got esp32s3 and esp32c3 dev boards in the mail, yey) I might have been tripped up by the esp32 early versions special cases

So, took abit of time, but here is a slightly new look at this, with more complete API and examples. I think most comments have been addressed, but due to significant changes i assume some new might pop up.
I think it works pretty well as is, but there are a few places where im uncertain if the best solution was found or I wasn't able to get it exactly as I wanted, especially around types for gpio, rtc and uart wakeup types.
Touch and ULP wakeup sources only turns the wakeup on, and assume that these things has been configured beforehand. Not really experienced with either, so not sure if there is a better way to do this.

Made a new commit fixing all the nits and resolved those threads. Commented on the other threads, but will start a new thread regarding pin/pindriver etc so we dont start discussing related things multiple places again
So, my thoughts on this is as follows (but im very open for changing my mind here):
For GPIO the input is configured before its passed to GpioWakeup, These settings will be active also for the wakeup source. So I think it makes sense to send a PinDriver which implies (i think) that it has already been configured. and that the sleep API only will add it to the list of gpios to check for during (light) sleep.
For RTC, the rtc_gpio_pull*() functions are used to set pull, and I assumed that this would not make sense to do before actually starting sleep, therefore I thought it would be logical to pass the actual pins together with pull settings, and then apply all of it before starting sleep. BUT, now I became unsure, since I see that set_pull() actually does rtc_gpio_pull*() already, which makes me think that maybe you could "pre-configure" the RTC and then pass a pindriver.
For UART I think the whole thing needs to be configured for it to work, so again i preferred to pass the driver. When looking at the light sleep example in esp-idf, then multiple uart things are set up. I dont think it makes senses to just send the pin here, I dont think that would work, but ill double check.
I have a few things to experiment with here, so ill get back in a few days I think, Will also check how passing references will work as well.

For GPIO the input is configured before its passed to GpioWakeup, These settings will be active also for the wakeup source. So I think it makes sense to send a PinDriver which implies (i think) that it has already been configured. and that the sleep API only will add it to the list of gpios to check for during (light) sleep.

I think you are probably right here. You must however, ensure that the passed pin driver instance has its pin configured in GPIO mode and not in RTC mode (if it is not clear, esp32 and all esp32s* chips have two separate APIs to deal with pins (and two separate hardware pieces for that) - the RTC API, and the GPIO API (which are roughly offering the same functionality, with the GPIO one supporting much more pins and being a bit more powerful).
I've just introduced two new marker traits, so that you can distinguish whether the passed PinDriver instance is configured in RTC or GPIO at compile time. You should roughly do pin: PinDriver<P, M> where M: InputMode + GPIOMode.
You should also not pass the pin driver by value (as the user might want to re-use it post-light sleep, but either by mut reference, or by BorrowMut but let's keep this for later.

For RTC, the rtc_gpio_pull*() functions are used to set pull, and I assumed that this would not make sense to do before actually starting sleep, therefore I thought it would be logical to pass the actual pins together with pull settings, and then apply all of it before starting sleep. BUT, now I became unsure, since I see that set_pull() actually does rtc_gpio_pull*() already, which makes me think that maybe you could "pre-configure" the RTC and then pass a pindriver.

Hopefully the previous paragraph has cleared the confusion here. If you pass the pin driver to the GPIO wakeup source, you should also pass the pin driver (not the pin peripheral!) to the RTC wakeup source as well. You should assert that the driver is in RTC mode by using a similar newly-introduced trait: RTCMode.

For UART I think the whole thing needs to be configured for it to work, so again i preferred to pass the driver. When looking at the light sleep example in esp-idf, then multiple uart things are set up. I dont think it makes senses to just send the pin here, I dont think that would work, but ill double check.

OK. We are becoming symmetrical everywhere: for the UART, you should also pass the UartDriver instance, and not the UART peripheral itself.

I have a few things to experiment with here, so ill get back in a few days I think, Will also check how passing references will work as well.

Not sure what you mean by passing references. If you mean, passing drivers which might not be configured on degraded pins (AnyIOPin and friends) - yeah, you need to fix that and it won't be an easy code (it will be full of generics and tricks like the ADC chaining code I referred to in one of my earlier comments; if you get stuck, I can help here).
Finally - and in the long term - I think we should be consistent about this "pass the driver, not the peripheral" thing also in other cases; most notably - the touch wakeup source. It is just that... the touch driver (TouchDriver) is not implemented yet. So yeah, for the time being, you can either not support yet the touch wakeup source, or continue with your current implementation, which does not get one or more touch pins (touch drivers, actually).
I also need to look at the ULP wakeup source. It might be the case that there as well we need to pass-in an instance (or mut ref) to the UlpDriver, not even the ULP peripheral...

Im struggling with RTC... Here are the general idea for wakeup structs for gpio and rtc:
pub struct GpioWakeup<'a, P, M>
where
    P: InputPin,
    M: InputMode + GPIOMode,
{
    pub pins: &'a [ &'a PinDriver<'a, P, M>],
}

pub struct RtcWakeup<'a, P, M>
where
    P: RTCPin + InputPin,
    M: InputMode + RTCMode,
{
    pub pins: &'a [ &'a PinDriver<'a, P, M>],
}

This is all nice, but when adding more than one pindriver to these struct I get the problem that each pindriver are different types since they have different P. So, for GPIO this is ok, because I can downgrade to AnyInputPin, but thats not an option for RTC.
Should there be a AnyRtcInputPin? Should AnyInputPin implement RTCPin? (i dont think it can?)
Seems like you are touching something related to this in your "UPDATE" in the last post, but Im not sure I understand it fully. PinDriver does contain the type of pin peripheral its working on, right?
Do we need the ChainedAdcChannels solution?

Im struggling with RTC... Here are the general idea for wakeup structs for gpio and rtc:
pub struct GpioWakeup<'a, P, M>
where
    P: InputPin,
    M: InputMode + GPIOMode,
{
    pub pins: &'a [ &'a PinDriver<'a, P, M>],
}

pub struct RtcWakeup<'a, P, M>
where
    P: RTCPin + InputPin,
    M: InputMode + RTCMode,
{
    pub pins: &'a [ &'a PinDriver<'a, P, M>],
}

This is all nice, but when adding more than one pindriver to these struct I get the problem that each pindriver are different types since they have different P.
So, for GPIO this is ok, because I can downgrade to AnyInputPin, but thats not an option for RTC.

Even for GPIO it is not OK, as the downgrade decision is not with you, but with the user. I.e. accepting only PinDrivers with downgraded AnyInputPin makes the API very restricted.

Should there be a AnyRtcInputPin? Should AnyInputPin implement RTCPin? (i dont think it can?)
Seems like you are touching something related to this in your "UPDATE" in the last post, but Im not sure I understand it fully. PinDriver does contain the type of pin peripheral its working on, right?

Indeed. I thought I had removed the P parameter from PinDriver, but unfortunately I have actually preserved it, so that the PinDriver::into_* methods can be implemented.
But regardless, because even if the P parameter was not there, you'll have the same problem with the M parameter, as  restricting it to Input means you cannot take pin drivers, which are InputOutput, and you probably should.

Do we need the ChainedAdcChannels solution?

Yes. That's the reason I was pointing you to it - an array just won't do.

So, for GPIO this is ok, because I can downgrade to AnyInputPin, but thats not an option for RTC.

Even for GPIO it is not OK, as the downgrade decision is not with you, but with the user. I.e. accepting only PinDrivers with downgraded AnyInputPin makes the API very restricted.

yeah that makes sense

Do we need the ChainedAdcChannels solution?

Yes. That's the reason I was pointing you to it - an array just won't do.

seems like thats the only way to get everything we would want. I think it get the gist of it, but thing im gonna need some time to struggle with the implementation :)

wow, this stuff hurt my brain on several occasions, but ended up somewhere that works.
Probably still abit rough around the edges, so maybe not completely done, but think its getting there.

I'm sorry for the delay here. Trying to push a new release of the crate during the last month, and still not quite there.
Will return to this once the release is out.

how is the status, do we want to try to push it to completion here? i think overall it would be nice to have it done.

just added a missing piece, gpio wakeup from deep sleep on riscv devices.

After you applied the suggestions from ivmarkov, could you add comments on every pub facing ( trait, struct, function etc ) api object for a nicer generated docu with cargo doc. Though this can be done as a last step

I think the outstanding comments from @ivmarkov are ideas for simplifications that didnt work out (or I wasnt able to make them work out).
Agree, ill add more comments on pubs when the rest of the stuff is ok

Hello, was wondering if there are any updates on this feature, I am willing to pick it up, if it's abandoned. I wanted to use this functionality in an upcoming project.

Pick it up. It was long ago, and I might have forgotten most of the details, but perhaps you can look at all the comments to get an idea how it was developed, and then look if you can do anything for the outstanding ones.

pick it up if you like. I started this as a bit of a side project during paternity leave, but when that was over, life and work caught up with me and I never was able to finish

So I was reading through the PR comments, and let me sort of voice my thoughts and comments on them, so I can understand how to proceed and maybe get some pointers and help about them

As far as unresolved PR comments go, I found one regarding structs and traits that could be done away with like RtcWakeupPinTrait here another which talks about simplification to the GPIOWakeup Subsystem here. I also noticed a point about the development of TouchDriver and ULPDriver which were in progress at that time here which may change the code for handling them as wakeup sources.
Directly following the earlier points, the last commit on the PR was almost a year ago, so was wondering if the a) the overall design points, for e.g generic params in traits and/or structs still apply and b) if further development is to be made, should we rebase this branch from master, and continue from there, or to start afresh from a new branch.
A much more minor and a later improvement, the functions for entering deep sleep and light sleep have about 5 optional params, so maybe something like the builder macro could help here. Just wanted to put it out there.

So was wondering about the ideal way to get started and drive this towards completion. Let me know if I have missed something as well.


Update database schema 0.2.7 => 0.3

Hi guys,
I upgraded from 0.2.7 to 0.3 and finally got stuck with the following error hidden at the JS console:
Slim Application Error
The application could not run because of the following error:

Details

Type: ErrorException
Code: 8
Message: Undefined offset: 0
File: /home/kanban/public_html/api/userRoutes.php
Line: 143
Trace

#0 /home/kanban/public_html/api/userRoutes.php(143): Slim\Slim::handleErrors(8, 'Undefined offse...', '/home/kanban/pu...', 143, Array)
#1 [internal function]: {closure}()
#2 /home/kanban/public_html/vendor/slim/slim/Slim/Route.php(468): call_user_func_array(Object(Closure), Array)
#3 /home/kanban/public_html/vendor/slim/slim/Slim/Slim.php(1357): Slim\Route->dispatch()
#4 /home/kanban/public_html/vendor/slim/slim/Slim/Middleware/Flash.php(85): Slim\Slim->call()
#5 /home/kanban/public_html/vendor/slim/slim/Slim/Middleware/MethodOverride.php(92): Slim\Middleware\Flash->call()
#6 /home/kanban/public_html/vendor/slim/slim/Slim/Middleware/PrettyExceptions.php(67): Slim\Middleware\MethodOverride->call()
#7 /home/kanban/public_html/vendor/slim/slim/Slim/Slim.php(1302): Slim\Middleware\PrettyExceptions->call()
#8 /home/kanban/public_html/api/api.php(51): Slim\Slim->run()
#9 {main}

Any ideas on how to combat that one?
Cheers
Rei

I guess I have a hackish workaround here. Not nice, but works for me (tm)
Around line 142-146, the $options are triggering the undefined index error. So I guess I am just missing a few settings in my user profile there.
Changed
 $options = [

to
 @$options = [

to work around that for now. But I'd be happy if someone could look over my solution and maybe do an official and proper fix.

In fact, it was the 'options' table which caused the error. As a temp. resolution:
Open the taskboard.db file with an sqlite editor and fire the following queries:
CREATE TABLE `option` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT  ,`tasks_order` INTEGER,`show_animations` INTEGER,`show_assignee` INTEGER,`user_id` INTEGER  , FOREIGN KEY(`user_id`) REFERENCES `user`(`id`) ON DELETE SET NULL ON UPDATE SET NULL )

and per user you got, insert the options. Careful, user_id needs to map to existing users (as seen in the users table)
insert into option ("id", "tasks_order", "show_animations", "show_assignee", "user_id") values ('1', '0', '0', '0', '1');
insert into option ("id", "tasks_order", "show_animations", "show_assignee", "user_id") values ('2', '0', '0', '0', '2');
insert into option ("id", "tasks_order", "show_animations", "show_assignee", "user_id") values ('3', '0', '0', '0', '3');
....

Thanks for figuring this out. I should have tested upgrading from 0.2.7 to 0.3.0 since I added a new table.
In the future I'll provide upgrade scripts if needed!